Skip to content

Commit 61f42f2

Browse files
committed
Merge branch 'PHP-8.4'
* PHP-8.4: Fix GH-17503: Undefined float conversion in mb_convert_variables
2 parents 7ee1a87 + 47a0922 commit 61f42f2

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

ext/mbstring/mbstring.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3348,7 +3348,8 @@ try_next_encoding:;
33483348
}
33493349

33503350
for (size_t i = 0; i < length; i++) {
3351-
array[i].demerits = (uint64_t) (array[i].demerits * array[i].multiplier);
3351+
double demerits = array[i].demerits * (double) array[i].multiplier;
3352+
array[i].demerits = demerits < (double) UINT64_MAX ? (uint64_t) demerits : UINT64_MAX;
33523353
}
33533354

33543355
return length;

ext/mbstring/tests/gh17503.phpt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--TEST--
2+
GH-17503 (Undefined float conversion in mb_convert_variables)
3+
--EXTENSIONS--
4+
mbstring
5+
--FILE--
6+
<?php
7+
$a = array_fill(0, 500, "<blah>");
8+
var_dump(mb_convert_variables("ASCII", ["UTF-8", "UTF-16"], $a));
9+
?>
10+
--EXPECT--
11+
string(5) "UTF-8"

0 commit comments

Comments
 (0)