summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2004-12-09 14:14:21 +0000
committerAntony Dovgal <tony2001@php.net>2004-12-09 14:14:21 +0000
commite76824c91fd428b663dd14dfbabe9501e26f360d (patch)
treed1ff6143e6155696c4394b7af8b93c1d566a344a
parent1266735cd04b544507263077be1f57952bb19d37 (diff)
downloadphp-git-e76824c91fd428b663dd14dfbabe9501e26f360d.tar.gz
fix segfault in session_module_name() when session.save_handler is empty
-rw-r--r--ext/session/session.c16
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();
+ }
}
}
/* }}} */