head	1.2;
access;
symbols;
locks; strict;
comment	@# @;


1.2
date	2001.07.06.22.55.34;	author nectar;	state dead;
branches;
next	1.1;

1.1
date	2001.06.24.04.45.32;	author nectar;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Update 0.3f -> 0.4b
@
text
@--- lib/krb5/keytab_any.c	2001/05/14 06:14:48	1.2
+++ lib/krb5/keytab_any.c	2001/06/24 01:41:04
@@@@ -60,7 +60,8 @@@@
     krb5_error_code ret;
     char buf[256];
 
-    while (strsep_copy(&name, ",", buf, sizeof(buf)) != -1) {
+    while (strsep_copy(&name, ",", buf, sizeof(buf)) != -1
+	   && buf[0] != '\0') {
 	a = malloc(sizeof(*a));
 	if (a == NULL) {
 	    ret = ENOMEM;
@@@@ -68,7 +69,7 @@@@
 	}
 	if (a0 == NULL) {
 	    a0 = a;
-	    a->name = strdup(name);
+	    a->name = strdup(buf);
 	    if (a->name == NULL) {
 		krb5_set_error_string(context, "malloc: out of memory");
 		ret = ENOMEM;
@@@@ -139,10 +140,8 @@@@
     ed->a = a;
     ret = krb5_kt_start_seq_get(context, ed->a->kt, &ed->cursor);
     if (ret) {
-	free (ed);
 	free (c->data);
 	c->data = NULL;
-	krb5_set_error_string (context, "malloc: out of memory");
 	return ENOMEM;
     }
     return 0;
@@@@ -166,14 +165,15 @@@@
 	    ret2 = krb5_kt_end_seq_get (context, ed->a->kt, &ed->cursor);
 	    if (ret2)
 		return ret2;
-	    ed->a = ed->a->next;
+	    while ((ed->a = ed->a->next) != NULL) {
+		ret2 = krb5_kt_start_seq_get(context, ed->a->kt, &ed->cursor);
+		if (ret2 == 0)
+		    break;
+	    }
 	    if (ed->a == NULL) {
 		krb5_clear_error_string (context);
 		return KRB5_CC_END;
 	    }
-	    ret2 = krb5_kt_start_seq_get(context, ed->a->kt, &ed->cursor);
-	    if (ret2)
-		return ret2;
 	} else
 	    return ret;
     } while (ret == KRB5_CC_END);

@


1.1
log
@Bug fix for memory being free'd twice when using the new ANY:-keytabs.
PORTREVISION bumped.

Submitted by:	assar
@
text
@@

