]> granicus.if.org Git - php/commitdiff
- Fixed bug #53141 (autoload misbehaves if called from closing session)
authorFelipe Pena <felipe@php.net>
Tue, 2 Nov 2010 18:34:56 +0000 (18:34 +0000)
committerFelipe Pena <felipe@php.net>
Tue, 2 Nov 2010 18:34:56 +0000 (18:34 +0000)
  patch by: ladislav at marek dot su

ext/session/session.c
ext/session/tests/bug53141.phpt [new file with mode: 0644]

index b913b9b05dbe69a201c9f2e7e09a3e13ae0e588a..a71117554a5e288ed72330ad808f3584cf8e85fc 100644 (file)
@@ -2074,6 +2074,7 @@ static PHP_MINFO_FUNCTION(session) /* {{{ */
 
 static const zend_module_dep session_deps[] = { /* {{{ */
        ZEND_MOD_OPTIONAL("hash")
+       ZEND_MOD_REQUIRED("spl")
        {NULL, NULL, NULL}
 };
 /* }}} */
diff --git a/ext/session/tests/bug53141.phpt b/ext/session/tests/bug53141.phpt
new file mode 100644 (file)
index 0000000..765d272
--- /dev/null
@@ -0,0 +1,26 @@
+--TEST--
+Bug #53141 (autoload misbehaves if called from closing session)
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+spl_autoload_register(function ($class) {
+    var_dump("Loading $class");
+    eval('class Bar {}');
+});
+
+class Foo
+{
+    function __sleep()
+    {
+        new Bar;
+        return array();
+    }
+}
+
+session_start();
+$_SESSION['foo'] = new Foo;
+
+?>
+--EXPECT--
+string(11) "Loading Bar"
\ No newline at end of file