Module Name:    src
Committed By:   snj
Date:           Fri Jan 22 22:17:02 UTC 2010

Modified Files:
        src/crypto/dist/openssl/crypto/comp [netbsd-5-0]: c_zlib.c

Log Message:
Apply patch (requested by taca in ticket #1265):
Fix CVE-2009-4355.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.7 -r1.1.1.7.8.1 \
    src/crypto/dist/openssl/crypto/comp/c_zlib.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/crypto/dist/openssl/crypto/comp/c_zlib.c
diff -u src/crypto/dist/openssl/crypto/comp/c_zlib.c:1.1.1.7 src/crypto/dist/openssl/crypto/comp/c_zlib.c:1.1.1.7.8.1
--- src/crypto/dist/openssl/crypto/comp/c_zlib.c:1.1.1.7	Fri May  9 21:34:23 2008
+++ src/crypto/dist/openssl/crypto/comp/c_zlib.c	Fri Jan 22 22:17:01 2010
@@ -136,15 +136,6 @@
 
 static int zlib_stateful_ex_idx = -1;
 
-static void zlib_stateful_free_ex_data(void *obj, void *item,
-	CRYPTO_EX_DATA *ad, int ind,long argl, void *argp)
-	{
-	struct zlib_state *state = (struct zlib_state *)item;
-	inflateEnd(&state->istream);
-	deflateEnd(&state->ostream);
-	OPENSSL_free(state);
-	}
-
 static int zlib_stateful_init(COMP_CTX *ctx)
 	{
 	int err;
@@ -188,6 +179,12 @@
 
 static void zlib_stateful_finish(COMP_CTX *ctx)
 	{
+	struct zlib_state *state =
+		(struct zlib_state *)CRYPTO_get_ex_data(&ctx->ex_data,
+			zlib_stateful_ex_idx);
+	inflateEnd(&state->istream);
+	deflateEnd(&state->ostream);
+	OPENSSL_free(state);
 	CRYPTO_free_ex_data(CRYPTO_EX_INDEX_COMP,ctx,&ctx->ex_data);
 	}
 
@@ -402,7 +399,7 @@
 			if (zlib_stateful_ex_idx == -1)
 				zlib_stateful_ex_idx =
 					CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_COMP,
-						0,NULL,NULL,NULL,zlib_stateful_free_ex_data);
+						0,NULL,NULL,NULL,NULL);
 			CRYPTO_w_unlock(CRYPTO_LOCK_COMP);
 			if (zlib_stateful_ex_idx == -1)
 				goto err;

Reply via email to