Skip to content

Commit ae72b46

Browse files
committed
Throw BrokenRandomEngineError
1 parent 778b1d9 commit ae72b46

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

ext/random/engine_user.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ static uint64_t generate(php_random_status *status)
4949
result += ((uint64_t) (unsigned char) Z_STRVAL(retval)[i]) << (8 * i);
5050
}
5151
} else {
52-
zend_throw_error(NULL, "A random engine must return a non-empty string");
52+
zend_throw_error(random_ce_Random_BrokenRandomEngineError, "A random engine must return a non-empty string");
5353
return 0;
5454
}
5555

ext/random/random.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ static inline uint32_t rand_range32(const php_random_algo *algo, php_random_stat
126126
while (UNEXPECTED(result > limit)) {
127127
/* If the requirements cannot be met in a cycles, return fail */
128128
if (++count > RANDOM_RANGE_ATTEMPTS) {
129-
zend_throw_error(NULL, "Failed to generate an acceptable random number in %d attempts", RANDOM_RANGE_ATTEMPTS);
129+
zend_throw_error(random_ce_Random_BrokenRandomEngineError, "Failed to generate an acceptable random number in %d attempts", RANDOM_RANGE_ATTEMPTS);
130130
return 0;
131131
}
132132

@@ -182,7 +182,7 @@ static inline uint64_t rand_range64(const php_random_algo *algo, php_random_stat
182182
while (UNEXPECTED(result > limit)) {
183183
/* If the requirements cannot be met in a cycles, return fail */
184184
if (++count > RANDOM_RANGE_ATTEMPTS) {
185-
zend_throw_error(NULL, "Failed to generate an acceptable random number in %d attempts", RANDOM_RANGE_ATTEMPTS);
185+
zend_throw_error(random_ce_Random_BrokenRandomEngineError, "Failed to generate an acceptable random number in %d attempts", RANDOM_RANGE_ATTEMPTS);
186186
return 0;
187187
}
188188

ext/random/tests/03_randomizer/user_unsafe.phpt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,35 +74,35 @@ foreach ([
7474
EmptyStringEngine
7575
=====================
7676

77-
Error: A random engine must return a non-empty string in %s:%d
77+
Random\BrokenRandomEngineError: A random engine must return a non-empty string in %s:%d
7878
Stack trace:
7979
#0 %s(%d): Random\Randomizer->getInt(0, 123)
8080
#1 {main}
8181

8282
-------
8383

84-
Error: A random engine must return a non-empty string in %s:%d
84+
Random\BrokenRandomEngineError: A random engine must return a non-empty string in %s:%d
8585
Stack trace:
8686
#0 %s(%d): Random\Randomizer->nextInt()
8787
#1 {main}
8888

8989
-------
9090

91-
Error: A random engine must return a non-empty string in %s:%d
91+
Random\BrokenRandomEngineError: A random engine must return a non-empty string in %s:%d
9292
Stack trace:
9393
#0 %s(%d): Random\Randomizer->getBytes(1)
9494
#1 {main}
9595

9696
-------
9797

98-
Error: A random engine must return a non-empty string in %s:%d
98+
Random\BrokenRandomEngineError: A random engine must return a non-empty string in %s:%d
9999
Stack trace:
100100
#0 %s(%d): Random\Randomizer->shuffleArray(Array)
101101
#1 {main}
102102

103103
-------
104104

105-
Error: A random engine must return a non-empty string in %s:%d
105+
Random\BrokenRandomEngineError: A random engine must return a non-empty string in %s:%d
106106
Stack trace:
107107
#0 %s(%d): Random\Randomizer->shuffleBytes('foobar')
108108
#1 {main}
@@ -111,7 +111,7 @@ Stack trace:
111111
HeavilyBiasedEngine
112112
=====================
113113

114-
Error: Failed to generate an acceptable random number in 50 attempts in %s:%d
114+
Random\BrokenRandomEngineError: Failed to generate an acceptable random number in 50 attempts in %s:%d
115115
Stack trace:
116116
#0 %s(%d): Random\Randomizer->getInt(0, 123)
117117
#1 {main}
@@ -126,14 +126,14 @@ string(2) "ff"
126126

127127
-------
128128

129-
Error: Failed to generate an acceptable random number in 50 attempts in %s:%d
129+
Random\BrokenRandomEngineError: Failed to generate an acceptable random number in 50 attempts in %s:%d
130130
Stack trace:
131131
#0 %s(%d): Random\Randomizer->shuffleArray(Array)
132132
#1 {main}
133133

134134
-------
135135

136-
Error: Failed to generate an acceptable random number in 50 attempts in %s:%d
136+
Random\BrokenRandomEngineError: Failed to generate an acceptable random number in 50 attempts in %s:%d
137137
Stack trace:
138138
#0 %s(%d): Random\Randomizer->shuffleBytes('foobar')
139139
#1 {main}

0 commit comments

Comments
 (0)