diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/session/mod_files.c | 7 | ||||
-rw-r--r-- | ext/session/tests/bug38377.phpt | 13 |
3 files changed, 21 insertions, 1 deletions
@@ -30,6 +30,8 @@ PHP NEWS - Fixed phpinfo() cutoff of variables at \0. (Ilia) - Fixed a bug in the filter extension that prevented magic_quotes_gpc from being applied when RAW filter is used. (Ilia) +- Fixed bug #38377 (session_destroy() gives warning after + session_regenerate_id()). (Ilia) - Fixed bug #38354 (Unwanted reformatting of XML when using AsXML). (Christian) - Fixed bug #38347 (Segmentation fault when using foreach with an unknown/empty SimpleXMLElement). (Tony) diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c index c4ae79310c..c72997e2c6 100644 --- a/ext/session/mod_files.c +++ b/ext/session/mod_files.c @@ -402,7 +402,12 @@ PS_DESTROY_FUNC(files) ps_files_close(data); if (VCWD_UNLINK(buf) == -1) { - return FAILURE; + /* This is a little safety check for instances when we are dealing with a regenerated session + * that was not yet written to disk + */ + if (!VCWD_ACCESS(buf, F_OK)) { + return FAILURE; + } } } diff --git a/ext/session/tests/bug38377.phpt b/ext/session/tests/bug38377.phpt new file mode 100644 index 0000000000..514e459637 --- /dev/null +++ b/ext/session/tests/bug38377.phpt @@ -0,0 +1,13 @@ +--TEST-- +bug #38377 (session_destroy() gives warning after session_regenerate_id()) +--SKIPIF-- +<?php include('skipif.inc'); ?> +--FILE-- +<?php +session_start(); +session_regenerate_id(); +session_destroy(); +echo "Done\n"; +?> +--EXPECT-- +Done |