mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
fix loop
This commit is contained in:
parent
d53d0a5dc4
commit
97d620449c
@ -84,7 +84,6 @@ BOOL php_win32_init_random_bytes(void)
|
||||
PHP_WINUTIL_API int php_win32_get_random_bytes(unsigned char *buf, size_t size) { /* {{{ */
|
||||
|
||||
BOOL ret;
|
||||
size_t got = 0;
|
||||
|
||||
#if 0
|
||||
/* Currently we fail on startup, with CNG API it shows no regressions so far and is secure.
|
||||
@ -96,18 +95,21 @@ PHP_WINUTIL_API int php_win32_get_random_bytes(unsigned char *buf, size_t size)
|
||||
#endif
|
||||
|
||||
#if ZEND_ENABLE_ZVAL_LONG64
|
||||
BOOL call_ret;
|
||||
size_t got = 0;
|
||||
|
||||
do {
|
||||
ULONG to_read = (ULONG)(size - got);
|
||||
ret = ret && NT_SUCCESS(BCryptGenRandom(bcrypt_algo, buf, to_read, 0));
|
||||
if (ret) {
|
||||
call_ret = NT_SUCCESS(BCryptGenRandom(bcrypt_algo, buf, to_read, 0));
|
||||
if (call_ret) {
|
||||
got += to_read;
|
||||
buf += to_read;
|
||||
}
|
||||
} while (ret && got < size);
|
||||
} while (call_ret && got < size);
|
||||
ret = (got == size);
|
||||
#else
|
||||
ret = NT_SUCCESS(BCryptGenRandom(bcrypt_algo, buf, size, 0));
|
||||
#endif
|
||||
assert(got == size);
|
||||
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user