diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/session/session.c | 1 | ||||
-rw-r--r-- | ext/session/tests/bug53141.phpt | 26 |
3 files changed, 29 insertions, 0 deletions
@@ -54,6 +54,8 @@ type is application/x-www-form-urlencoded or is not registered with PHP). (gm at tlink dot de, Gustavo) - Fixed bug #53144 (Segfault in SplObjectStorage::removeAll()). (Felipe) +- Fixed bug #53141 (autoload misbehaves if called from closing session). + (ladislav at marek dot su) - Fixed bug #53071 (SPLObjectStorage defeats gc_collect_cycles). (Gustavo) - Fixed bug #53006 (stream_get_contents has an unpredictable behavior when the underlying stream does not support seeking). (Gustavo) diff --git a/ext/session/session.c b/ext/session/session.c index 52bd17753e..dba1e2c9f8 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -2282,6 +2282,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 |