diff options
author | Antony Dovgal <tony2001@php.net> | 2004-12-09 14:14:21 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2004-12-09 14:14:21 +0000 |
commit | e76824c91fd428b663dd14dfbabe9501e26f360d (patch) | |
tree | d1ff6143e6155696c4394b7af8b93c1d566a344a | |
parent | 1266735cd04b544507263077be1f57952bb19d37 (diff) | |
download | php-git-e76824c91fd428b663dd14dfbabe9501e26f360d.tar.gz |
fix segfault in session_module_name() when session.save_handler is empty
-rw-r--r-- | ext/session/session.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index 34d86f7658..cff31696af 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1337,11 +1337,21 @@ PHP_FUNCTION(session_module_name) } PS(mod_data) = NULL; - RETVAL_STRING(safe_estrdup(PS(mod)->s_name), 0); - + if (PS(mod) && PS(mod)->s_name) { + RETVAL_STRING(safe_estrdup(PS(mod)->s_name), 0); + } + else { + RETVAL_EMPTY_STRING(); + } + zend_alter_ini_entry("session.save_handler", sizeof("session.save_handler"), Z_STRVAL_PP(p_name), Z_STRLEN_PP(p_name), PHP_INI_USER, PHP_INI_STAGE_RUNTIME); } else { - RETURN_STRING(safe_estrdup(PS(mod)->s_name), 0); + if (PS(mod) && PS(mod)->s_name) { + RETURN_STRING(safe_estrdup(PS(mod)->s_name), 0); + } + else { + RETURN_EMPTY_STRING(); + } } } /* }}} */ |