PERFORCE change 38686 for review

Sam Leffler sam at FreeBSD.org
Fri Sep 26 16:21:09 PDT 2003


http://perforce.freebsd.org/chv.cgi?CH=38686

Change 38686 by sam at sam_ebb on 2003/09/26 16:20:51

	move iv free'ing to where it is allocated; this also corrects
	a malloc type mismatch that (in 4.x) made folks think there was
	a memory leak ('cuz memory was allocated to one bucket but free'd
	to another)

Affected files ...

.. //depot/projects/netperf/sys/netipsec/key.c#8 edit
.. //depot/projects/netperf/sys/netipsec/xform_esp.c#6 edit

Differences ...

==== //depot/projects/netperf/sys/netipsec/key.c#8 (text+ko) ====

@@ -2772,6 +2772,7 @@
 		sav->tdb_xform->xf_zeroize(sav);
 		sav->tdb_xform = NULL;
 	} else {
+		KASSERT(sav->iv == NULL, ("iv but no xform"));
 		if (sav->key_auth != NULL)
 			bzero(_KEYBUF(sav->key_auth), _KEYLEN(sav->key_auth));
 		if (sav->key_enc != NULL)
@@ -2806,10 +2807,6 @@
 		free(sav->lft_s, M_IPSEC_MISC);
 		sav->lft_s = NULL;
 	}
-	if (sav->iv != NULL) {
-		free(sav->iv, M_IPSEC_MISC);
-		sav->iv = NULL;
-	}
 }
 
 /*

==== //depot/projects/netperf/sys/netipsec/xform_esp.c#6 (text+ko) ====

@@ -249,7 +249,10 @@
 
 	if (sav->key_enc)
 		bzero(_KEYBUF(sav->key_enc), _KEYLEN(sav->key_enc));
-	/* NB: sav->iv is freed elsewhere, even though we malloc it! */
+	if (sav->iv) {
+		free(sav->iv, M_XDATA);
+		sav->iv = NULL;
+	}
 	sav->tdb_encalgxform = NULL;
 	sav->tdb_xform = NULL;
 	return error;


More information about the p4-projects mailing list