svn commit: samba r12037 - in branches/SAMBA_4_0/source/heimdal/lib/krb5: .

abartlet at samba.org abartlet at samba.org
Sat Dec 3 00:47:52 GMT 2005


Author: abartlet
Date: 2005-12-03 00:47:51 +0000 (Sat, 03 Dec 2005)
New Revision: 12037

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12037

Log:
Fix malloc corruption caused by double-free(), where realloc(ptr, 0)
is equivilant to free().

This is the issue tridge was seeing in the MEMORY: keytab code.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/heimdal/lib/krb5/keytab_memory.c


Changeset:
Modified: branches/SAMBA_4_0/source/heimdal/lib/krb5/keytab_memory.c
===================================================================
--- branches/SAMBA_4_0/source/heimdal/lib/krb5/keytab_memory.c	2005-12-03 00:46:23 UTC (rev 12036)
+++ branches/SAMBA_4_0/source/heimdal/lib/krb5/keytab_memory.c	2005-12-03 00:47:51 UTC (rev 12037)
@@ -214,9 +214,15 @@
 	krb5_clear_error_string (context);
 	return KRB5_KT_NOTFOUND;
     }
-    e = realloc(d->entries, d->num_entries * sizeof(*d->entries));
-    if(e != NULL)
-	d->entries = e;
+    if (d->num_entries == 0) {
+	free(d->entries);
+	d->entries = NULL;
+    } else {
+	e = realloc(d->entries, d->num_entries * sizeof(*d->entries));
+	if(e != NULL)
+	    d->entries = e;
+    }
+
     return 0;
 }
 



More information about the samba-cvs mailing list