summaryrefslogtreecommitdiff
path: root/ext/session
diff options
context:
space:
mode:
Diffstat (limited to 'ext/session')
-rw-r--r--ext/session/mod_files.c4
-rw-r--r--ext/session/mod_files.h4
-rw-r--r--ext/session/mod_mm.c6
-rw-r--r--ext/session/mod_mm.h4
-rw-r--r--ext/session/mod_user.c4
-rw-r--r--ext/session/mod_user.h4
-rw-r--r--ext/session/php_session.h4
-rw-r--r--ext/session/session.c6
-rw-r--r--ext/session/tests/014.phpt12
-rw-r--r--ext/session/tests/015.phpt1
-rw-r--r--ext/session/tests/018.phpt1
-rw-r--r--ext/session/tests/020.phpt1
-rw-r--r--ext/session/tests/021.phpt1
-rw-r--r--ext/session/tests/bug36459.phpt83
-rw-r--r--ext/session/tests/bug41600.phpt1
-rw-r--r--ext/session/tests/bug60634.phpt46
-rw-r--r--ext/session/tests/bug60634_error_1.phpt49
-rw-r--r--ext/session/tests/bug60634_error_2.phpt49
-rw-r--r--ext/session/tests/bug60634_error_3.phpt48
-rw-r--r--ext/session/tests/bug60634_error_4.phpt48
-rw-r--r--ext/session/tests/bug60634_error_5.phpt49
-rw-r--r--ext/session/tests/session_save_path_variation4.phpt5
22 files changed, 361 insertions, 69 deletions
diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c
index a25a7db0e..a7aac29d2 100644
--- a/ext/session/mod_files.c
+++ b/ext/session/mod_files.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_files.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: mod_files.c 321634 2012-01-01 13:15:04Z felipe $ */
#include "php.h"
diff --git a/ext/session/mod_files.h b/ext/session/mod_files.h
index 357a12059..ff6838cd7 100644
--- a/ext/session/mod_files.h
+++ b/ext/session/mod_files.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_files.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: mod_files.h 321634 2012-01-01 13:15:04Z felipe $ */
#ifndef MOD_FILES_H
#define MOD_FILES_H
diff --git a/ext/session/mod_mm.c b/ext/session/mod_mm.c
index e84d4f584..0d5a0bdcc 100644
--- a/ext/session/mod_mm.c
+++ b/ext/session/mod_mm.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_mm.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: mod_mm.c 321634 2012-01-01 13:15:04Z felipe $ */
#include "php.h"
@@ -278,7 +278,7 @@ PHP_MINIT_FUNCTION(ps_mm)
ps_mm_path = emalloc(save_path_len + 1 + (sizeof(PS_MM_FILE) - 1) + mod_name_len + euid_len + 1);
memcpy(ps_mm_path, PS(save_path), save_path_len);
- if (PS(save_path)[save_path_len - 1] != DEFAULT_SLASH) {
+ if (save_path_len && PS(save_path)[save_path_len - 1] != DEFAULT_SLASH) {
ps_mm_path[save_path_len] = DEFAULT_SLASH;
save_path_len++;
}
diff --git a/ext/session/mod_mm.h b/ext/session/mod_mm.h
index 638bd77b1..bd69117ab 100644
--- a/ext/session/mod_mm.h
+++ b/ext/session/mod_mm.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_mm.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: mod_mm.h 321634 2012-01-01 13:15:04Z felipe $ */
#ifndef MOD_MM_H
#define MOD_MM_H
diff --git a/ext/session/mod_user.c b/ext/session/mod_user.c
index 6431f3a12..8a6ff8609 100644
--- a/ext/session/mod_user.c
+++ b/ext/session/mod_user.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_user.c 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: mod_user.c 321634 2012-01-01 13:15:04Z felipe $ */
#include "php.h"
#include "php_session.h"
diff --git a/ext/session/mod_user.h b/ext/session/mod_user.h
index e3a8dd716..27330bf66 100644
--- a/ext/session/mod_user.h
+++ b/ext/session/mod_user.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_user.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: mod_user.h 321634 2012-01-01 13:15:04Z felipe $ */
#ifndef MOD_USER_H
#define MOD_USER_H
diff --git a/ext/session/php_session.h b/ext/session/php_session.h
index f93adf69f..07cb89dc5 100644
--- a/ext/session/php_session.h
+++ b/ext/session/php_session.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_session.h 306939 2011-01-01 02:19:59Z felipe $ */
+/* $Id: php_session.h 321634 2012-01-01 13:15:04Z felipe $ */
#ifndef PHP_SESSION_H
#define PHP_SESSION_H
diff --git a/ext/session/session.c b/ext/session/session.c
index 432048dc7..19fa3cc38 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2011 The PHP Group |
+ | Copyright (c) 1997-2012 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c 314376 2011-08-06 14:47:44Z felipe $ */
+/* $Id: session.c 321634 2012-01-01 13:15:04Z felipe $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1742,7 +1742,7 @@ static PHP_FUNCTION(session_regenerate_id)
return;
}
- if (SG(headers_sent)) {
+ if (SG(headers_sent) && PS(use_cookies)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot regenerate session id - headers already sent");
RETURN_FALSE;
}
diff --git a/ext/session/tests/014.phpt b/ext/session/tests/014.phpt
index be1119d9a..09ad0f5b1 100644
--- a/ext/session/tests/014.phpt
+++ b/ext/session/tests/014.phpt
@@ -3,7 +3,7 @@ a script should not be able to modify session.use_trans_sid
--SKIPIF--
<?php include('skipif.inc'); ?>
--INI--
-session.use_trans_sid=1
+session.use_trans_sid=0
session.use_cookies=0
session.cache_limiter=
register_globals=1
@@ -22,11 +22,11 @@ session_start();
?>
<a href="/link">
<?php
-ini_set("session.use_trans_sid","0");
+ini_set("session.use_trans_sid","1");
?>
<a href="/link">
<?php
-ini_set("session.use_trans_sid","1");
+ini_set("session.use_trans_sid","0");
?>
<a href="/link">
<?php
@@ -34,10 +34,10 @@ session_destroy();
?>
--EXPECTF--
Deprecated: Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0
-<a href="/link?PHPSESSID=abtest">
+<a href="/link">
Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in %s on line %d
-<a href="/link?PHPSESSID=abtest">
+<a href="/link">
Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in %s on line %d
-<a href="/link?PHPSESSID=abtest">
+<a href="/link">
diff --git a/ext/session/tests/015.phpt b/ext/session/tests/015.phpt
index e747e08fb..7d7b73734 100644
--- a/ext/session/tests/015.phpt
+++ b/ext/session/tests/015.phpt
@@ -5,6 +5,7 @@ use_trans_sid should not affect SID
--INI--
session.use_trans_sid=1
session.use_cookies=0
+session.use_only_cookies=0
session.cache_limiter=
arg_separator.output=&
session.name=PHPSESSID
diff --git a/ext/session/tests/018.phpt b/ext/session/tests/018.phpt
index 3450d1e3f..def1f419c 100644
--- a/ext/session/tests/018.phpt
+++ b/ext/session/tests/018.phpt
@@ -4,6 +4,7 @@ rewriter correctly handles attribute names which contain dashes
<?php include('skipif.inc'); ?>
--INI--
session.use_cookies=0
+session.use_only_cookies=0
session.cache_limiter=
session.use_trans_sid=1
session.name=PHPSESSID
diff --git a/ext/session/tests/020.phpt b/ext/session/tests/020.phpt
index 82997a8f0..f43bac5d1 100644
--- a/ext/session/tests/020.phpt
+++ b/ext/session/tests/020.phpt
@@ -4,6 +4,7 @@ rewriter uses arg_seperator.output for modifying URLs
<?php include('skipif.inc'); ?>
--INI--
session.use_cookies=0
+session.use_only_cookies=0
session.cache_limiter=
session.use_trans_sid=1
arg_separator.output="&amp;"
diff --git a/ext/session/tests/021.phpt b/ext/session/tests/021.phpt
index 9d95b86d0..1ad3c5d5f 100644
--- a/ext/session/tests/021.phpt
+++ b/ext/session/tests/021.phpt
@@ -4,6 +4,7 @@ rewriter handles form and fieldset tags correctly
<?php include('skipif.inc'); ?>
--INI--
session.use_cookies=0
+session.use_only_cookies=0
session.cache_limiter=
session.use_trans_sid=1
url_rewriter.tags="a=href,area=href,frame=src,input=src,form=,fieldset="
diff --git a/ext/session/tests/bug36459.phpt b/ext/session/tests/bug36459.phpt
index 1488fb4dd..66a4ac1cb 100644
--- a/ext/session/tests/bug36459.phpt
+++ b/ext/session/tests/bug36459.phpt
@@ -1,41 +1,42 @@
---TEST--
-Bug #31454 (Incorrect adding PHPSESSID to links, which contains \r\n)
---SKIPIF--
-<?php include('skipif.inc'); ?>
---INI--
-session.use_trans_sid=1
-session.use_cookies=0
-session.name=sid
---FILE--
-<?php
-error_reporting(E_ALL);
-
-session_start();
-
-# Do not remove \r from this tests, they are essential!
-?>
-<html>
- <head>
- <title>Bug #36459 Incorrect adding PHPSESSID to links, which contains \r\n</title>
- </head>
- <body>
- <p>See source html code</p>
- <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2"
- style="font: normal 11pt Times New Roman">incorrect link</a><br />
- <br />
- <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2" style="font: normal 11pt Times New Roman">correct link</a>
- </body>
-</html>
---EXPECTF--
-<html>
- <head>
- <title>Bug #36459 Incorrect adding PHPSESSID to links, which contains \r\n</title>
- </head>
- <body>
- <p>See source html code</p>
- <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2&sid=%s"
- style="font: normal 11pt Times New Roman">incorrect link</a><br />
- <br />
- <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2&sid=%s" style="font: normal 11pt Times New Roman">correct link</a>
- </body>
-</html>
+--TEST--
+Bug #31454 (Incorrect adding PHPSESSID to links, which contains \r\n)
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--INI--
+session.use_trans_sid=1
+session.use_cookies=0
+session.use_only_cookies=0
+session.name=sid
+--FILE--
+<?php
+error_reporting(E_ALL);
+
+session_start();
+
+# Do not remove \r from this tests, they are essential!
+?>
+<html>
+ <head>
+ <title>Bug #36459 Incorrect adding PHPSESSID to links, which contains \r\n</title>
+ </head>
+ <body>
+ <p>See source html code</p>
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2"
+ style="font: normal 11pt Times New Roman">incorrect link</a><br />
+ <br />
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2" style="font: normal 11pt Times New Roman">correct link</a>
+ </body>
+</html>
+--EXPECTF--
+<html>
+ <head>
+ <title>Bug #36459 Incorrect adding PHPSESSID to links, which contains \r\n</title>
+ </head>
+ <body>
+ <p>See source html code</p>
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2&sid=%s"
+ style="font: normal 11pt Times New Roman">incorrect link</a><br />
+ <br />
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2&sid=%s" style="font: normal 11pt Times New Roman">correct link</a>
+ </body>
+</html>
diff --git a/ext/session/tests/bug41600.phpt b/ext/session/tests/bug41600.phpt
index 028fca79a..690347ac8 100644
--- a/ext/session/tests/bug41600.phpt
+++ b/ext/session/tests/bug41600.phpt
@@ -4,6 +4,7 @@ Bug #41600 (url rewriter tags doesn't work with namespaced tags)
<?php include('skipif.inc'); ?>
--INI--
session.use_cookies=0
+session.use_only_cookies=0
session.cache_limiter=
session.use_trans_sid=1
arg_separator.output="&amp;"
diff --git a/ext/session/tests/bug60634.phpt b/ext/session/tests/bug60634.phpt
new file mode 100644
index 000000000..2ec0c26c1
--- /dev/null
+++ b/ext/session/tests/bug60634.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write())
+--XFAIL--
+Long term low priority bug, working on it
+--INI--
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+function open($save_path, $session_name) {
+ return true;
+}
+
+function close() {
+ die("close: goodbye cruel world\n");
+}
+
+function read($id) {
+ return '';
+}
+
+function write($id, $session_data) {
+ die("write: goodbye cruel world\n");
+}
+
+function destroy($id) {
+ return true;
+}
+
+function gc($maxlifetime) {
+ return true;
+}
+
+session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
+session_start();
+session_write_close();
+echo "um, hi\n";
+
+?>
+--EXPECTF--
+write: goodbye cruel world
diff --git a/ext/session/tests/bug60634_error_1.phpt b/ext/session/tests/bug60634_error_1.phpt
new file mode 100644
index 000000000..3b6e394ee
--- /dev/null
+++ b/ext/session/tests/bug60634_error_1.phpt
@@ -0,0 +1,49 @@
+--TEST--
+Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()) - fatal error in write during exec
+--XFAIL--
+Long term low priority bug, working on it
+--INI--
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+function open($save_path, $session_name) {
+ return true;
+}
+
+function close() {
+ echo "close: goodbye cruel world\n";
+}
+
+function read($id) {
+ return '';
+}
+
+function write($id, $session_data) {
+ echo "write: goodbye cruel world\n";
+ undefined_function();
+}
+
+function destroy($id) {
+ return true;
+}
+
+function gc($maxlifetime) {
+ return true;
+}
+
+session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
+session_start();
+session_write_close();
+echo "um, hi\n";
+
+?>
+--EXPECTF--
+write: goodbye cruel world
+
+Fatal error: Call to undefined function undefined_function() in %s on line %d
diff --git a/ext/session/tests/bug60634_error_2.phpt b/ext/session/tests/bug60634_error_2.phpt
new file mode 100644
index 000000000..265fb303f
--- /dev/null
+++ b/ext/session/tests/bug60634_error_2.phpt
@@ -0,0 +1,49 @@
+--TEST--
+Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()) - exception in write during exec
+--XFAIL--
+Long term low priority bug, working on it
+--INI--
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+function open($save_path, $session_name) {
+ return true;
+}
+
+function close() {
+ echo "close: goodbye cruel world\n";
+}
+
+function read($id) {
+ return '';
+}
+
+function write($id, $session_data) {
+ echo "write: goodbye cruel world\n";
+ throw new Exception;
+}
+
+function destroy($id) {
+ return true;
+}
+
+function gc($maxlifetime) {
+ return true;
+}
+
+session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
+session_start();
+session_write_close();
+echo "um, hi\n";
+
+?>
+--EXPECTF--
+write: goodbye cruel world
+
+Fatal error: Uncaught exception 'Exception' in %s
diff --git a/ext/session/tests/bug60634_error_3.phpt b/ext/session/tests/bug60634_error_3.phpt
new file mode 100644
index 000000000..b2004d68b
--- /dev/null
+++ b/ext/session/tests/bug60634_error_3.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()) - fatal error in write after exec
+--XFAIL--
+Long term low priority bug, working on it
+--INI--
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+function open($save_path, $session_name) {
+ return true;
+}
+
+function close() {
+ echo "close: goodbye cruel world\n";
+ exit;
+}
+
+function read($id) {
+ return '';
+}
+
+function write($id, $session_data) {
+ echo "write: goodbye cruel world\n";
+ undefined_function();
+}
+
+function destroy($id) {
+ return true;
+}
+
+function gc($maxlifetime) {
+ return true;
+}
+
+session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
+session_start();
+
+?>
+--EXPECTF--
+write: goodbye cruel world
+
+Fatal error: Call to undefined function undefined_function() in %s on line %d
diff --git a/ext/session/tests/bug60634_error_4.phpt b/ext/session/tests/bug60634_error_4.phpt
new file mode 100644
index 000000000..60bc0dcf5
--- /dev/null
+++ b/ext/session/tests/bug60634_error_4.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()) - exception in write after exec
+--XFAIL--
+Long term low priority bug, working on it
+--INI--
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+function open($save_path, $session_name) {
+ return true;
+}
+
+function close() {
+ echo "close: goodbye cruel world\n";
+ exit;
+}
+
+function read($id) {
+ return '';
+}
+
+function write($id, $session_data) {
+ echo "write: goodbye cruel world\n";
+ throw new Exception;
+}
+
+function destroy($id) {
+ return true;
+}
+
+function gc($maxlifetime) {
+ return true;
+}
+
+session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
+session_start();
+
+?>
+--EXPECTF--
+write: goodbye cruel world
+
+Fatal error: Uncaught exception 'Exception' in %s
diff --git a/ext/session/tests/bug60634_error_5.phpt b/ext/session/tests/bug60634_error_5.phpt
new file mode 100644
index 000000000..376b65f20
--- /dev/null
+++ b/ext/session/tests/bug60634_error_5.phpt
@@ -0,0 +1,49 @@
+--TEST--
+Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()) - fatal error in close during exec
+--XFAIL--
+Long term low priority bug, working on it
+--INI--
+session.save_path=
+session.name=PHPSESSID
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+function open($save_path, $session_name) {
+ return true;
+}
+
+function close() {
+ echo "close: goodbye cruel world\n";
+ undefined_function();
+}
+
+function read($id) {
+ return '';
+}
+
+function write($id, $session_data) {
+ return true;
+}
+
+function destroy($id) {
+ return true;
+}
+
+function gc($maxlifetime) {
+ return true;
+}
+
+session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
+session_start();
+session_write_close();
+echo "um, hi\n";
+
+?>
+--EXPECTF--
+close: goodbye cruel world
+
+Fatal error: Call to undefined function undefined_function() in %s on line %d
diff --git a/ext/session/tests/session_save_path_variation4.phpt b/ext/session/tests/session_save_path_variation4.phpt
index 6ea725cd8..80db6caf7 100644
--- a/ext/session/tests/session_save_path_variation4.phpt
+++ b/ext/session/tests/session_save_path_variation4.phpt
@@ -1,10 +1,7 @@
--TEST--
Test session_save_path() function : variation
--SKIPIF--
-<?php include('skipif.inc');
-if(substr(PHP_OS, 0, 3) != "WIN")
- die("skip Only for Windows");
-?>
+<?php include('skipif.inc');?>
--INI--
open_basedir=.
session.save_handler=files