From 72ff9077a534e1886d66468e2cfbd51dc8352f39 Mon Sep 17 00:00:00 2001 From: Gina Peter Banyard Date: Sun, 29 Dec 2024 10:11:33 +0000 Subject: [PATCH] ext/standard: Let is_numeric_str parse the int value for us in getopt() --- ext/standard/basic_functions.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index b546474e4e8..b153472c4d1 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1071,16 +1071,16 @@ PHP_FUNCTION(getopt) /* Add this option / argument pair to the result hash. */ optname_len = strlen(optname); - if (!(optname_len > 1 && optname[0] == '0') && is_numeric_string(optname, optname_len, NULL, NULL, 0) == IS_LONG) { + zend_long opt_name_as_long = 0; + if (!(optname_len > 1 && optname[0] == '0') && is_numeric_string(optname, optname_len, &opt_name_as_long, NULL, 0) == IS_LONG) { /* numeric string */ - int optname_int = atoi(optname); - if ((args = zend_hash_index_find(Z_ARRVAL_P(return_value), optname_int)) != NULL) { + if ((args = zend_hash_index_find(Z_ARRVAL_P(return_value), opt_name_as_long)) != NULL) { if (Z_TYPE_P(args) != IS_ARRAY) { convert_to_array(args); } zend_hash_next_index_insert(Z_ARRVAL_P(args), &val); } else { - zend_hash_index_update(Z_ARRVAL_P(return_value), optname_int, &val); + zend_hash_index_update(Z_ARRVAL_P(return_value), opt_name_as_long, &val); } } else { /* other strings */