Bug fix for memory being free'd twice when using the new ANY:-keytabs.
PORTREVISION bumped. Submitted by: assar
This commit is contained in:
parent
385c248462
commit
e7b042d993
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=44376
2 changed files with 54 additions and 1 deletions
|
@ -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/ \
|
||||
|
|
53
security/heimdal/files/patch-ab
Normal file
53
security/heimdal/files/patch-ab
Normal file
|
@ -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);
|
||||
|
Loading…
Reference in a new issue