mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fix uninitialized memory in parse_ini_string()
Introduced by GH-11014 Fixes oss-fuzz #58080 Closes GH-11092
This commit is contained in:
@@ -110,6 +110,7 @@ static void zend_ini_init_string(zval *result)
|
||||
} else {
|
||||
ZVAL_EMPTY_STRING(result);
|
||||
}
|
||||
Z_EXTRA_P(result) = 0;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -307,6 +308,7 @@ static void normalize_value(zval *zv)
|
||||
return;
|
||||
}
|
||||
|
||||
ZEND_ASSERT(Z_EXTRA_P(zv) == 0 || Z_EXTRA_P(zv) == INI_ZVAL_IS_NUMBER);
|
||||
if (Z_EXTRA_P(zv) == INI_ZVAL_IS_NUMBER && Z_TYPE_P(zv) == IS_STRING) {
|
||||
zval number_rv;
|
||||
if (convert_to_number(&number_rv, Z_STRVAL_P(zv), Z_STRLEN_P(zv)) == SUCCESS) {
|
||||
|
||||
@@ -145,6 +145,7 @@ ZEND_API zend_ini_scanner_globals ini_scanner_globals;
|
||||
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED && \
|
||||
(YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW))) {\
|
||||
zend_ini_copy_typed_value(ini_lval, type, str, len); \
|
||||
Z_EXTRA_P(ini_lval) = 0; \
|
||||
} else { \
|
||||
zend_ini_copy_value(ini_lval, str, len); \
|
||||
} \
|
||||
@@ -598,6 +599,7 @@ end_raw_value_chars:
|
||||
yyleng = YYCURSOR - SCNG(yy_text);
|
||||
|
||||
zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
|
||||
Z_EXTRA_P(ini_lval) = 0;
|
||||
return TC_QUOTED_STRING;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user