Changeset: b16109cbbd21 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b16109cbbd21 Modified Files: common/utils/muuid.c monetdb5/modules/kernel/microbenchmark.c tools/merovingian/daemon/discoveryrunner.c Branch: Oct2014 Log Message:
Minor changes around calls to rand(). diffs (133 lines): diff --git a/common/utils/muuid.c b/common/utils/muuid.c --- a/common/utils/muuid.c +++ b/common/utils/muuid.c @@ -52,16 +52,16 @@ generateUUID(void) /* try to do some pseudo interesting stuff, and stash it in the * format of a UUID to at least return some uniform answer */ char out[37]; - union { - unsigned char randbuf[16]; - unsigned short s[8]; - } r; + unsigned char randbuf[16]; - if (RAND_bytes(r.randbuf, 16) >= 0) { + if (RAND_bytes(randbuf, 16) >= 0) { snprintf(out, sizeof(out), - "%04x%04x-%04x-%04x-%04x-%04x%04x%04x", - r.s[0], r.s[1], r.s[2], r.s[3], - r.s[4], r.s[5], r.s[6], r.s[7]); + "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-" + "%02x%02x%02x%02x%02x%02x", + randbuf[0], randbuf[1], randbuf[2], randbuf[3], + randbuf[4], randbuf[5], randbuf[6], randbuf[7], + randbuf[8], randbuf[9], randbuf[10], randbuf[11], + randbuf[12], randbuf[13], randbuf[14], randbuf[15]); } else { /* generate something like this: * cefa7a9c-1dd2-11b2-8350-880020adbeef diff --git a/monetdb5/modules/kernel/microbenchmark.c b/monetdb5/modules/kernel/microbenchmark.c --- a/monetdb5/modules/kernel/microbenchmark.c +++ b/monetdb5/modules/kernel/microbenchmark.c @@ -76,12 +76,16 @@ BATrandom(BAT **bn, oid *base, wrd *size srand(seed); if (*domain == int_nil) { BATloop(b, p, q) { - /* coverity[dont_call] */ *(int *) Tloc(b, p) = rand(); } +#if RAND_MAX < 46340 /* 46340*46340 = 2147395600 < INT_MAX */ + } else if (*domain > RAND_MAX + 1) { + BATloop(b, p, q) { + *(int *) Tloc(b, p) = (rand() * (RAND_MAX + 1) + rand()) % *domain; + } +#endif } else { BATloop(b, p, q) { - /* coverity[dont_call] */ *(int *) Tloc(b, p) = rand() % *domain; } } @@ -145,7 +149,6 @@ BATuniform(BAT **bn, oid *base, wrd *siz /* mix BUNs randomly */ for (r = i = 0; i < n; i++) { - /* coverity[dont_call] */ BUN idx = i + ((r += (BUN) rand()) % (n - i)); int val; @@ -218,18 +221,15 @@ BATskewed(BAT **bn, oid *base, wrd *size lastbun = firstbun + skewedSize; for(p=firstbun; p <lastbun; p++) - /* coverity[dont_call] */ *(int *) Tloc(b, p) = (int)rand() % skewedDomain; lastbun = BUNlast(b); for(; p <lastbun; p++) - /* coverity[dont_call] */ *(int *) Tloc(b, p) = ((int)rand() % (*domain-skewedDomain)) + skewedDomain; /* mix BUNs randomly */ for (r = i = 0; i < n; i++) { - /* coverity[dont_call] */ BUN idx = i + ((r += (BUN) rand()) % (n - i)); int val; @@ -332,7 +332,6 @@ BATnormal(BAT **bn, oid *base, wrd *size /* mix BUNs randomly */ for (r = 0, i = 0; i < n; i++) { - /* coverity[dont_call] */ BUN idx = i + (BUN) ((r += (unsigned int) rand()) % (n - i)); int val; @@ -415,7 +414,6 @@ MBMmix(bat *bn, bat *batid) firstbun = BUNfirst(b); /* mix BUNs randomly */ for (r = i = 0; i < n; i++) { - /* coverity[dont_call] */ BUN idx = i + ((r += (BUN) rand()) % (n - i)); int val; diff --git a/tools/merovingian/daemon/discoveryrunner.c b/tools/merovingian/daemon/discoveryrunner.c --- a/tools/merovingian/daemon/discoveryrunner.c +++ b/tools/merovingian/daemon/discoveryrunner.c @@ -296,7 +296,6 @@ discoveryRunner(void *d) socklen_t peer_addr_len; fd_set fds; struct timeval tv; - int c; /* avoid first announce, the HELO will cause an announce when it's * received by ourself */ time_t deadline = 1; @@ -452,9 +451,9 @@ discoveryRunner(void *d) Mfprintf(_mero_discout, "new neighbour %s (%s)\n", buf + 5, host); /* sleep a random amount of time to avoid an avalanche of * ANNC messages flooding the network */ - /* coverity[dont_call] */ - c = 1 + (int)(2500.0 * (rand() / (RAND_MAX + 1.0))); - sleep_ms(c); +#ifndef STATIC_CODE_ANALYSIS /* hide rand() from Coverity */ + sleep_ms(1 + (int)(2500.0 * (rand() / (RAND_MAX + 1.0)))); +#endif /* force an announcement round by dropping the deadline */ forceannc = 1; continue; @@ -518,7 +517,6 @@ discoveryRunner(void *d) } /* craft LEAV messages for each db */ - c = 0; orig = stats; while (stats != NULL) { readProps(ckv, stats->path); @@ -528,7 +526,6 @@ discoveryRunner(void *d) stats->dbname, _mero_hostname, (unsigned int)getConfNum(_mero_props, "port")); broadcast(buf); - c = 1; } freeConfFile(ckv); stats = stats->next; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list