summaryrefslogtreecommitdiff
path: root/ext/session/session.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2009-12-04 01:21:32 +0000
committerStanislav Malyshev <stas@php.net>2009-12-04 01:21:32 +0000
commit7b0d41535e21a93d2a752a2aa43d7c2e7d40312c (patch)
treecf9beb39fa01f3453d18379b9a2c3951ea5535a3 /ext/session/session.c
parent44aea5ebbbea6abf521fb532b8f409ccfeca806b (diff)
downloadphp-git-7b0d41535e21a93d2a752a2aa43d7c2e7d40312c.tar.gz
protect http_session_vars from interrupt corruption
improve save_path check
Diffstat (limited to 'ext/session/session.c')
-rw-r--r--ext/session/session.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index c0d6691734..9e6bf525c5 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -569,7 +569,7 @@ static PHP_INI_MH(OnUpdateSaveDir) /* {{{ */
p = new_value;
}
- if (php_check_open_basedir(p TSRMLS_CC)) {
+ if (*p && php_check_open_basedir(p TSRMLS_CC)) {
return FAILURE;
}
}
@@ -1817,7 +1817,10 @@ static PHP_FUNCTION(session_unset)
}
IF_SESSION_VARS() {
- HashTable *ht = Z_ARRVAL_P(PS(http_session_vars));
+ HashTable *ht;
+
+ SEPARATE_ZVAL_IF_NOT_REF(&PS(http_session_vars));
+ ht = Z_ARRVAL_P(PS(http_session_vars));
/* Clean $_SESSION. */
zend_hash_clean(ht);