pajoye                                   Mon, 21 Feb 2011 10:07:31 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=308531

Log:
- fix bug #54060, memory leak in openssl_encrypt

Bug: http://bugs.php.net/54060 (Open) Memory leaks when openssl_encrypt called
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/NEWS
    U   php/php-src/branches/PHP_5_3/ext/openssl/openssl.c
    A   php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt
    U   php/php-src/trunk/ext/openssl/openssl.c
    A   php/php-src/trunk/ext/openssl/tests/bug54060.phpt

Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2011-02-21 08:12:33 UTC (rev 308530)
+++ php/php-src/branches/PHP_5_3/NEWS   2011-02-21 10:07:31 UTC (rev 308531)
@@ -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

Modified: php/php-src/branches/PHP_5_3/ext/openssl/openssl.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/openssl/openssl.c  2011-02-21 08:12:33 UTC 
(rev 308530)
+++ php/php-src/branches/PHP_5_3/ext/openssl/openssl.c  2011-02-21 10:07:31 UTC 
(rev 308531)
@@ -4731,6 +4731,7 @@
        if (free_iv) {
                efree(iv);
        }
+       EVP_CIPHER_CTX_cleanup(&cipher_ctx);
 }
 /* }}} */


Added: php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt                
                (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/openssl/tests/bug54060.phpt        
2011-02-21 10:07:31 UTC (rev 308531)
@@ -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

Modified: php/php-src/trunk/ext/openssl/openssl.c
===================================================================
--- php/php-src/trunk/ext/openssl/openssl.c     2011-02-21 08:12:33 UTC (rev 
308530)
+++ php/php-src/trunk/ext/openssl/openssl.c     2011-02-21 10:07:31 UTC (rev 
308531)
@@ -4741,6 +4741,7 @@
        if (free_iv) {
                efree(iv);
        }
+       EVP_CIPHER_CTX_cleanup(&cipher_ctx);
 }
 /* }}} */


Added: php/php-src/trunk/ext/openssl/tests/bug54060.phpt
===================================================================
--- php/php-src/trunk/ext/openssl/tests/bug54060.phpt                           
(rev 0)
+++ php/php-src/trunk/ext/openssl/tests/bug54060.phpt   2011-02-21 10:07:31 UTC 
(rev 308531)
@@ -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

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to