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();
This commit is contained in:
Holger Hans Peter Freyther 2014-06-22 16:53:55 +02:00
parent bd8a89debc
commit 17aa6b25cb
1 changed files with 7 additions and 4 deletions

View File

@ -214,12 +214,15 @@ int main(int argc, char **argv)
} }
if (!rand_is_set) { if (!rand_is_set) {
int i;
printf("WARNING: We're using really weak random numbers!\n\n"); printf("WARNING: We're using really weak random numbers!\n\n");
srand(time(NULL)); srand(time(NULL));
*(uint32_t *)&_rand[0] = rand();
*(uint32_t *)(&_rand[4]) = rand(); for (i = 0; i < 4; ++i) {
*(uint32_t *)(&_rand[8]) = rand(); uint32_t r;
*(uint32_t *)(&_rand[12]) = rand(); r = rand();
memcpy(&_rand[i*4], &r, 4);
}
} }
if (test_aud.type == OSMO_AUTH_TYPE_NONE || if (test_aud.type == OSMO_AUTH_TYPE_NONE ||