diff options
-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); |