tony2001 Thu Dec 9 09:21:13 2004 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/session session.c
Log:
MFH: fix segfault in session_module_name() when session.save_handler is empty
http://cvs.php.net/diff.php/php-src/ext/session/session.c?r1=1.336.2.45&r2=1.336.2.46&ty=u
Index: php-src/ext/session/session.c
diff -u php-src/ext/session/session.c:1.336.2.45
php-src/ext/session/session.c:1.336.2.46
--- php-src/ext/session/session.c:1.336.2.45 Tue Dec 7 09:01:56 2004
+++ php-src/ext/session/session.c Thu Dec 9 09:21:13 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.336.2.45 2004/12/07 14:01:56 tony2001 Exp $ */
+/* $Id: session.c,v 1.336.2.46 2004/12/09 14:21:13 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1222,11 +1222,21 @@
}
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();
+ }
}
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php