mirror of
https://github.com/php/php-src.git
synced 2026-03-26 17:22:15 +01:00
Fixed crash
This commit is contained in:
@@ -2203,24 +2203,26 @@ static PHP_FUNCTION(session_start)
|
||||
/* set options */
|
||||
if (options) {
|
||||
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(options), num_idx, str_idx, value) {
|
||||
switch(Z_TYPE_P(value)) {
|
||||
case IS_STRING:
|
||||
case IS_TRUE:
|
||||
case IS_FALSE:
|
||||
case IS_LONG:
|
||||
if (!zend_string_equals_literal(str_idx, "read_and_close")) {
|
||||
convert_to_boolean(value);
|
||||
read_and_close = (Z_TYPE_P(value) == IS_TRUE) ? 1 : 0;
|
||||
} else {
|
||||
convert_to_string(value);
|
||||
if (php_session_start_set_ini(str_idx, Z_STR_P(value)) == FAILURE) {
|
||||
php_error_docref(NULL, E_WARNING, "Setting option '%s' failed", str_idx->val);
|
||||
if (str_idx) {
|
||||
switch(Z_TYPE_P(value)) {
|
||||
case IS_STRING:
|
||||
case IS_TRUE:
|
||||
case IS_FALSE:
|
||||
case IS_LONG:
|
||||
if (zend_string_equals_literal(str_idx, "read_and_close")) {
|
||||
convert_to_boolean(value);
|
||||
read_and_close = (Z_TYPE_P(value) == IS_TRUE) ? 1 : 0;
|
||||
} else {
|
||||
convert_to_string(value);
|
||||
if (php_session_start_set_ini(str_idx, Z_STR_P(value)) == FAILURE) {
|
||||
php_error_docref(NULL, E_WARNING, "Setting option '%s' failed", str_idx->val);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING, "Option(%s) value must be string, boolean or long", str_idx->val);
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
php_error_docref(NULL, E_WARNING, "Option(%s) value must be string, boolean or long", str_idx->val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user