]> granicus.if.org Git - php/commitdiff
- fix bug #54060, memory leak in openssl_encrypt
authorPierre Joye <pajoye@php.net>
Mon, 21 Feb 2011 10:07:31 +0000 (10:07 +0000)
committerPierre Joye <pajoye@php.net>
Mon, 21 Feb 2011 10:07:31 +0000 (10:07 +0000)
NEWS
ext/openssl/openssl.c
ext/openssl/tests/bug54060.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index a1a780a64ee2695996bb438c0d3feba9806dcfdd..568fc5798d7a5f870f65d390e1be8d3f5adaf250 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,8 @@
 - Exif extension:
   . Fixed bug #54002 (crash on crafted tag, reported by Luca Carettoni). (Pierre)
     (CVE-2011-0708)
+- OpenSSL extension:
+  . Fixed bug #54060 (Memory leaks when openssl_encrypt). (Pierre)
 
 - SPL extension:
   . Fixed memory leak in DirectoryIterator::getExtension() and 
index 31158e5aa23f00a3b617d81661d80f0816122591..47deeb386ed8f8945ebee00ab031c24deab82bed 100644 (file)
@@ -4731,6 +4731,7 @@ PHP_FUNCTION(openssl_encrypt)
        if (free_iv) {
                efree(iv);
        }
+       EVP_CIPHER_CTX_cleanup(&cipher_ctx);
 }
 /* }}} */
 
diff --git a/ext/openssl/tests/bug54060.phpt b/ext/openssl/tests/bug54060.phpt
new file mode 100644 (file)
index 0000000..fe8ca94
--- /dev/null
@@ -0,0 +1,17 @@
+--TEST--
+Bug #54060 (Memory leak in openssl_encrypt)
+--SKIPIF--
+<?php if (!extension_loaded("openssl")) die("skip"); ?>
+--FILE--
+<?php
+
+$data = "jfdslkjvflsdkjvlkfjvlkjfvlkdm,4w 043920r 9234r 32904r 09243
+r7-89437 r892374 r894372 r894 7289r7 f  frwerfh i iurf iuryw uyrfouiwy ruy
+972439 8478942 yrhfjkdhls";
+$pass = "r23498rui324hjbnkj";
+
+openssl_encrypt($data, 'des3', $pass, false, '1qazxsw2');
+echo "Done";
+?>
+--EXPECT--
+Done