mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Fix uninitialized reads in min/max
We need to use the unstable comparison function here, the fallback order is not initialized in this context.
This commit is contained in:
parent
afafe5443c
commit
bcd7352b0c
1 changed files with 4 additions and 6 deletions
|
@ -1297,13 +1297,12 @@ PHP_FUNCTION(min)
|
|||
|
||||
/* mixed min ( array $values ) */
|
||||
if (argc == 1) {
|
||||
zval *result;
|
||||
|
||||
if (Z_TYPE(args[0]) != IS_ARRAY) {
|
||||
zend_argument_type_error(1, "must be of type array, %s given", zend_zval_type_name(&args[0]));
|
||||
RETURN_THROWS();
|
||||
} else {
|
||||
if ((result = zend_hash_minmax(Z_ARRVAL(args[0]), php_array_data_compare, 0)) != NULL) {
|
||||
zval *result = zend_hash_minmax(Z_ARRVAL(args[0]), php_array_data_compare_unstable, 0);
|
||||
if (result) {
|
||||
ZVAL_COPY_DEREF(return_value, result);
|
||||
} else {
|
||||
zend_argument_value_error(1, "must contain at least one element");
|
||||
|
@ -1344,13 +1343,12 @@ PHP_FUNCTION(max)
|
|||
|
||||
/* mixed max ( array $values ) */
|
||||
if (argc == 1) {
|
||||
zval *result;
|
||||
|
||||
if (Z_TYPE(args[0]) != IS_ARRAY) {
|
||||
zend_argument_type_error(1, "must be of type array, %s given", zend_zval_type_name(&args[0]));
|
||||
RETURN_THROWS();
|
||||
} else {
|
||||
if ((result = zend_hash_minmax(Z_ARRVAL(args[0]), php_array_data_compare, 1)) != NULL) {
|
||||
zval *result = zend_hash_minmax(Z_ARRVAL(args[0]), php_array_data_compare_unstable, 1);
|
||||
if (result) {
|
||||
ZVAL_COPY_DEREF(return_value, result);
|
||||
} else {
|
||||
zend_argument_value_error(1, "must contain at least one element");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue