felipe          Tue Sep 23 12:05:02 2008 UTC

  Added files:                 
    /php-src/ext/spl/tests      bug46160.phpt 

  Modified files:              
    /php-src/ext/spl    spl_dllist.c 
  Log:
  - Fixed bug #46160 (SPL - Memory leak when exception is throwed in offsetSet 
method)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_dllist.c?r1=1.13&r2=1.14&diff_format=u
Index: php-src/ext/spl/spl_dllist.c
diff -u php-src/ext/spl/spl_dllist.c:1.13 php-src/ext/spl/spl_dllist.c:1.14
--- php-src/ext/spl/spl_dllist.c:1.13   Sun Jul  6 23:45:38 2008
+++ php-src/ext/spl/spl_dllist.c        Tue Sep 23 12:05:02 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: spl_dllist.c,v 1.13 2008/07/06 23:45:38 colder Exp $ */
+/* $Id: spl_dllist.c,v 1.14 2008/09/23 12:05:02 felipe Exp $ */
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -816,6 +816,7 @@
                index = spl_offset_convert_to_long(zindex TSRMLS_CC);
 
                if (index < 0 || index >= intern->llist->count) {
+                       zval_ptr_dtor(&value);
                        zend_throw_exception(spl_ce_OutOfRangeException, 
"Offset invalid or out of range", 0 TSRMLS_CC);
                        return;
                }
@@ -838,6 +839,7 @@
                                intern->llist->ctor(element TSRMLS_CC);
                        }
                } else {
+                       zval_ptr_dtor(&value);
                        zend_throw_exception(spl_ce_OutOfRangeException, 
"Offset invalid", 0 TSRMLS_CC);
                        return;
                }

http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug46160.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/bug46160.phpt
+++ php-src/ext/spl/tests/bug46160.phpt
--TEST--
Bug #46160 (SPL - Memory leak when exception is throwed in offsetSet method)
--FILE--
<?php

try {
        $x = new splqueue;
        $x->offsetSet(0, 0);
} catch (Exception $e) { }

?>
DONE
--EXPECT--
DONE



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

Reply via email to