Skip to content

Commit 2ebbefc

Browse files
committed
random: re-fix undefined behavior
1 parent 409cd19 commit 2ebbefc

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

ext/random/random.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ static inline uint32_t rand_range32(const php_random_algo *algo, php_random_stat
9292
total_size = 0;
9393
do {
9494
r = algo->generate(status);
95-
result = (result << (8 * status->last_generated_size)) | r;
95+
result = (result << (8 * (status->last_generated_size % sizeof(result)))) | r;
9696
total_size += status->last_generated_size;
9797
if (status->last_unsafe) {
9898
return 0;
@@ -127,7 +127,7 @@ static inline uint32_t rand_range32(const php_random_algo *algo, php_random_stat
127127
total_size = 0;
128128
do {
129129
r = algo->generate(status);
130-
result = (result << (8 * status->last_generated_size)) | r;
130+
result = (result << (8 * (status->last_generated_size % sizeof(result)))) | r;
131131
total_size += status->last_generated_size;
132132
if (status->last_unsafe) {
133133
return 0;

0 commit comments

Comments
 (0)