From ad5222c3a6bb2e22ee7ea77b47ef2eebde696fa0 Mon Sep 17 00:00:00 2001 From: Julien Pauli Date: Tue, 1 Aug 2017 14:42:15 +0200 Subject: [PATCH] Fix use of uninitialised value in uniqid() where more_entropy=0 --- ext/standard/uniqid.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) 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); -- 2.40.0