From: Julien Pauli Date: Tue, 1 Aug 2017 12:42:15 +0000 (+0200) Subject: Fix use of uninitialised value in uniqid() where more_entropy=0 X-Git-Tag: php-7.2.0beta2~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad5222c3a6bb2e22ee7ea77b47ef2eebde696fa0;p=php Fix use of uninitialised value in uniqid() where more_entropy=0 --- diff --git a/ext/standard/uniqid.c b/ext/standard/uniqid.c index e8f2f19520..8a6091a2af 100644 --- a/ext/standard/uniqid.c +++ b/ext/standard/uniqid.c @@ -58,19 +58,17 @@ PHP_FUNCTION(uniqid) Z_PARAM_BOOL(more_entropy) ZEND_PARSE_PARAMETERS_END(); - if (!more_entropy) { - /* This implementation needs current microsecond to change, - * hence we poll time until it does. This is much faster than - * calling usleep(1) which may cause the kernel to schedule - * another process, causing a pause of around 10ms. - */ - do { - (void)gettimeofday((struct timeval *) &tv, (struct timezone *) NULL); - } while (tv.tv_sec == prev_tv.tv_sec && tv.tv_usec == prev_tv.tv_usec); + /* This implementation needs current microsecond to change, + * hence we poll time until it does. This is much faster than + * calling usleep(1) which may cause the kernel to schedule + * another process, causing a pause of around 10ms. + */ + do { + (void)gettimeofday((struct timeval *) &tv, (struct timezone *) NULL); + } while (tv.tv_sec == prev_tv.tv_sec && tv.tv_usec == prev_tv.tv_usec); - prev_tv.tv_sec = tv.tv_sec; - prev_tv.tv_usec = tv.tv_usec; - } + prev_tv.tv_sec = tv.tv_sec; + prev_tv.tv_usec = tv.tv_usec; sec = (int) tv.tv_sec; usec = (int) (tv.tv_usec % 0x100000);