diff options
author | Stanislav Malyshev <stas@php.net> | 2000-07-02 16:27:39 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2000-07-02 16:27:39 +0000 |
commit | 4d1f03839c69eef3e6359b874496ac24181cd190 (patch) | |
tree | a70e8de8c9c26aac05defa61bac7e059909d2aa1 | |
parent | d3afeb5b4e8ad395e37e74116bad6810d3935f44 (diff) | |
download | php-git-4d1f03839c69eef3e6359b874496ac24181cd190.tar.gz |
Fix couple of crashes on error conditions
Make session_module_name really work
-rw-r--r-- | ext/session/session.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index 4d9b990bc2..0d634f240e 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -75,6 +75,9 @@ static PHP_INI_MH(OnUpdateSaveHandler) PSLS_FETCH(); PS(mod) = _php_find_ps_module(new_value PSLS_CC); + if(!PS(mod)) { + php_error(E_ERROR,"Can't find save handler %s",new_value); + } return SUCCESS; } @@ -84,6 +87,9 @@ static PHP_INI_MH(OnUpdateSerializer) PSLS_FETCH(); PS(serializer) = _php_find_ps_serializer(new_value PSLS_CC); + if(!PS(serializer)) { + php_error(E_ERROR,"Can't find serializer handler %s",new_value); + } return SUCCESS; } @@ -481,6 +487,10 @@ static void _php_session_save_current_state(PSLS_D) ulong num_key; PLS_FETCH(); + if(!PS(http_session_vars)) { + return; + } + if (!PG(register_globals)) { for (zend_hash_internal_pointer_reset(PS(http_session_vars)->value.ht); zend_hash_get_current_key(PS(http_session_vars)->value.ht, &variable, &num_key) == HASH_KEY_IS_STRING; @@ -979,7 +989,8 @@ PHP_FUNCTION(session_module_name) if (tempmod) { if (PS(mod_data)) PS(mod)->close(&PS(mod_data)); - PS(mod_data) = tempmod; + PS(mod) = tempmod; + PS(mod_data) = NULL; } else { efree(old); php_error(E_ERROR, "Cannot find named PHP session module (%s)", |