diff options
-rw-r--r-- | security/heimdal/Makefile | 2 | ||||
-rw-r--r-- | security/heimdal/files/patch-ab | 53 |
2 files changed, 54 insertions, 1 deletions
diff --git a/security/heimdal/Makefile b/security/heimdal/Makefile index c0afdba..3c80c88 100644 --- a/security/heimdal/Makefile +++ b/security/heimdal/Makefile @@ -7,7 +7,7 @@ PORTNAME= heimdal PORTVERSION= 0.3f -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= security ipv6 MASTER_SITES= ftp://ftp.pdc.kth.se/pub/heimdal/src/ \ ftp://ftp.replay.com/pub/replay/crypto/APPS/kerberos/heimdal/ \ diff --git a/security/heimdal/files/patch-ab b/security/heimdal/files/patch-ab new file mode 100644 index 0000000..9d6877f --- /dev/null +++ b/security/heimdal/files/patch-ab @@ -0,0 +1,53 @@ +--- 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); + |