From: Antony Dovgal Date: Wed, 30 Aug 2006 15:42:40 +0000 (+0000) Subject: change E_ERROR to E_WARNING when invalid argument has been passed X-Git-Tag: RELEASE_1_0_0RC1~1839 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b79892659f0dec28956bafdf04437126e4827de;p=php change E_ERROR to E_WARNING when invalid argument has been passed make sure ini_set() doesn't reset PS(mod) and PS(serializer) to invalid values --- diff --git a/ext/session/session.c b/ext/session/session.c index eb0a746f2d..008b57045b 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -92,14 +92,16 @@ static const ps_serializer *_php_find_ps_serializer(char *name TSRMLS_DC); static PHP_INI_MH(OnUpdateSaveHandler) { + ps_module *tmp; SESSION_CHECK_ACTIVE_STATE; - PS(mod) = _php_find_ps_module(new_value TSRMLS_CC); + tmp = _php_find_ps_module(new_value TSRMLS_CC); - if (PG(modules_activated) && !PS(mod)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot find save handler %s", new_value); + if (PG(modules_activated) && !tmp) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot find save handler %s", new_value); return FAILURE; } + PS(mod) = tmp; return SUCCESS; } @@ -119,14 +121,16 @@ static PHP_INI_MH(OnUpdateTransSid) static PHP_INI_MH(OnUpdateSerializer) { + const ps_serializer *tmp; SESSION_CHECK_ACTIVE_STATE; - PS(serializer) = _php_find_ps_serializer(new_value TSRMLS_CC); + tmp = _php_find_ps_serializer(new_value TSRMLS_CC); - if (PG(modules_activated) && !PS(serializer)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot find serialization handler %s", new_value); + if (PG(modules_activated) && !tmp) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot find serialization handler %s", new_value); return FAILURE; } + PS(serializer) = tmp; return SUCCESS; } @@ -1285,8 +1289,9 @@ PHP_FUNCTION(session_module_name) if (ac == 1) { convert_to_string_ex(p_name); if (!_php_find_ps_module(Z_STRVAL_PP(p_name) TSRMLS_CC)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot find named PHP session module (%s)", + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot find named PHP session module (%s)", Z_STRVAL_PP(p_name)); + zval_dtor(return_value); RETURN_FALSE; } if (PS(mod_data)) {