[353] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

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



home help back first fref pref prev next nref lref last post