summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Joye <pajoye@php.net>2011-02-21 10:07:31 +0000
committerPierre Joye <pajoye@php.net>2011-02-21 10:07:31 +0000
commit5261861d7711e5314cf0d743428edc84bfd4c694 (patch)
tree816816931fe7ddcc56d70b94c17b2427dfb3299e
parent3242016f283138486242e4c4f4c0b1a5ce2e000f (diff)
downloadphp-git-5261861d7711e5314cf0d743428edc84bfd4c694.tar.gz
- fix bug #54060, memory leak in openssl_encrypt
-rw-r--r--NEWS2
-rw-r--r--ext/openssl/openssl.c1
-rw-r--r--ext/openssl/tests/bug54060.phpt17
3 files changed, 20 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index a1a780a64e..568fc5798d 100644
--- 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
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 31158e5aa2..47deeb386e 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -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
index 0000000000..fe8ca94a5f
--- /dev/null
+++ b/ext/openssl/tests/bug54060.phpt
@@ -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