summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Pauli <jpauli@php.net>2017-08-01 14:42:15 +0200
committerJulien Pauli <jpauli@php.net>2017-08-01 14:58:00 +0200
commitad5222c3a6bb2e22ee7ea77b47ef2eebde696fa0 (patch)
treeddebf37c4ab364cabaa864ea2a9fb224e60931c7
parentb8da481a2a08ee65a2190ca1e1fc6e89e0ace457 (diff)
downloadphp-git-ad5222c3a6bb2e22ee7ea77b47ef2eebde696fa0.tar.gz
Fix use of uninitialised value in uniqid() where more_entropy=0
-rw-r--r--ext/standard/uniqid.c22
1 files 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);