]> granicus.if.org Git - php/commitdiff
Fixed bug #39602 (Invalid session.save_handler crashes PHP)
authorDmitry Stogov <dmitry@php.net>
Thu, 23 Nov 2006 08:07:16 +0000 (08:07 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 23 Nov 2006 08:07:16 +0000 (08:07 +0000)
Zend/tests/bug39602.phpt [new file with mode: 0755]
Zend/zend_objects_API.c

diff --git a/Zend/tests/bug39602.phpt b/Zend/tests/bug39602.phpt
new file mode 100755 (executable)
index 0000000..810ba4d
--- /dev/null
@@ -0,0 +1,13 @@
+--TEST--
+Bug #39602 (Invalid session.save_handler crashes PHP)
+--INI--
+session.save_handler=qwerty
+--FILE--
+<?php
+ini_set("session.save_handler","files");
+$x = new stdClass();
+echo "ok";
+?>
+--EXPECT--
+ok
+Fatal error: Unknown: Cannot find save handler qwerty in Unknown on line 0
index beb07cbf1a293c767d5d5e6ad2dcfbb54a91242a..3534bb3832ec08a85e572caf0d9c5b40596fd08c 100644 (file)
@@ -64,8 +64,11 @@ ZEND_API void zend_objects_store_call_destructors(zend_objects_store *objects TS
 
 ZEND_API void zend_objects_store_mark_destructed(zend_objects_store *objects TSRMLS_DC)
 {
-       zend_uint i = 1;
+       zend_uint i;
 
+       if (!objects->object_buckets) {
+               return;
+       }
        for (i = 1; i < objects->top ; i++) {
                if (objects->object_buckets[i].valid) {
                        objects->object_buckets[i].destructor_called = 1;