summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-06-22 16:53:55 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-06-22 16:53:55 +0200
commit17aa6b25cb0b720279f5d8221de17b01398d0143 (patch)
tree59bcddf32bcc26e4227a686cf9e531d737be8b9d
parentbd8a89debc48bb6696c58a346b463d8df18febb2 (diff)
osmo-auc-gen: Fix compiler warnings about aliasing
I ran "./utils/osmo-auc-gen -2 -a COMP128v1" and verified that the RAND doen't look empty Fixes: osmo-auc-gen.c: In function ‘main’: osmo-auc-gen.c:219:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)&_rand[0] = rand(); ^ osmo-auc-gen.c:220:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)(&_rand[4]) = rand(); ^ osmo-auc-gen.c:221:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)(&_rand[8]) = rand(); ^ osmo-auc-gen.c:222:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)(&_rand[12]) = rand();
-rw-r--r--utils/osmo-auc-gen.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c
index ee349ae6..fda045aa 100644
--- a/utils/osmo-auc-gen.c
+++ b/utils/osmo-auc-gen.c
@@ -214,12 +214,15 @@ int main(int argc, char **argv)
}
if (!rand_is_set) {
+ int i;
printf("WARNING: We're using really weak random numbers!\n\n");
srand(time(NULL));
- *(uint32_t *)&_rand[0] = rand();
- *(uint32_t *)(&_rand[4]) = rand();
- *(uint32_t *)(&_rand[8]) = rand();
- *(uint32_t *)(&_rand[12]) = rand();
+
+ for (i = 0; i < 4; ++i) {
+ uint32_t r;
+ r = rand();
+ memcpy(&_rand[i*4], &r, 4);
+ }
}
if (test_aud.type == OSMO_AUTH_TYPE_NONE ||