[353] in Kerberos-V5-bugs
CORRECTION: memory leak in krb5_free_principal
daemon@ATHENA.MIT.EDU (Jim Miller)
Mon Sep 20 19:40:58 1993
From: jim@bilbo.suite.com (Jim Miller)
Date: Mon, 20 Sep 93 18:28:58 -0500
To: krb5-bugs@MIT.EDU
Cc: kerberos@MIT.EDU
Reply-To: Jim_Miller@suite.com
I think the following is an improvement over the "Suggested fix" I sent in a
previous e-mail (for lib/free/f_princ.c):
void
krb5_free_principal(val)
krb5_principal val;
{
if (val->realm.data)
xfree(val->realm.data);
if (val->data) {
register int i = val->length;
+ register char *tmp;
while(--i >= 0)
+ if (tmp = val->data[i].data)
! xfree(tmp);
xfree(val->data);
}
xfree(val);
return;
}
I changed "(val->data + i)->data" to "tmp = val->data[i].data" (for clarity)
and I also added the additional sanity check.
Jim_Miller@suite.com