diff options
-rw-r--r-- | ext/session/session.c | 1 | ||||
-rw-r--r-- | ext/session/tests/bug53141.phpt | 26 |
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 |