Skip to content

Commit c26b9c3

Browse files
committed
fix unsafe ops
1 parent 0b3d5ba commit c26b9c3

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

ext/random/random.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,11 @@ static uint64_t user_generate(void *state) {
603603

604604
/* Store generated size in a state */
605605
size = Z_STR(retval)->len;
606+
607+
/* Guard for over 64-bit results */
608+
if (size > sizeof(uint64_t)) {
609+
size = sizeof(uint64_t);
610+
}
606611
s->last_generate_size = size;
607612

608613
if (size > 0) {

ext/random/tests/randomizer/get_bytes.phpt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ $randomizer = new \Random\Randomizer (
1616
2 => 'l',
1717
3 => 'l',
1818
4 => 'o',
19+
5 => \random_bytes(32), // 128-bit
1920
};
2021
}
2122
}
@@ -25,6 +26,8 @@ if ($randomizer->getBytes(5) !== 'Hello') {
2526
die('failure');
2627
}
2728

29+
$randomizer->getBytes(6);
30+
2831
die('success');
2932
?>
3033
--EXPECTF--

0 commit comments

Comments
 (0)