summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/session/session.c1
-rw-r--r--ext/session/tests/bug53141.phpt26
2 files changed, 27 insertions, 0 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index b913b9b05d..a71117554a 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -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
index 0000000000..765d2727e4
--- /dev/null
+++ b/ext/session/tests/bug53141.phpt
@@ -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