diff options
author | Stanislav Malyshev <stas@php.net> | 2009-12-04 01:21:32 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2009-12-04 01:21:32 +0000 |
commit | 7b0d41535e21a93d2a752a2aa43d7c2e7d40312c (patch) | |
tree | cf9beb39fa01f3453d18379b9a2c3951ea5535a3 /ext/session/session.c | |
parent | 44aea5ebbbea6abf521fb532b8f409ccfeca806b (diff) | |
download | php-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.c | 7 |
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); |