osmo-auc-gen: fix --sqn limit on 32bit systems, fixing build

osmo-auc-gen on 32bit systems allowed only --sqn up to 32bits width. However,
the recently added regression test for osmo-auc-gen includes an ivocation with
a 48bit wide --sqn, which now causes the builds to fail on 32bit systems.

Fix the --sqn argument parsing for larger integers by using strtoull(). Do away
with the intermediate variable 'ul' and place the value directly in the auth
data struct.

Change-Id: Ifb73b3b3de06576e36076ca573d52327f90a1f77
This commit is contained in:
Neels Hofmeyr 2017-03-16 00:50:06 +01:00
parent 1c260c0a09
commit 14477997c1
1 changed files with 1 additions and 3 deletions

View File

@ -106,7 +106,6 @@ int main(int argc, char **argv)
while (1) {
int c;
unsigned long ul;
static struct option long_options[] = {
{ "2g", 0, 0, '2' },
{ "3g", 0, 0, '3' },
@ -196,8 +195,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Only UMTS has SQN\n");
exit(2);
}
ul = strtoul(optarg, 0, 10);
test_aud.u.umts.sqn = ul;
test_aud.u.umts.sqn = strtoull(optarg, 0, 10);
/* Before calculating the UMTS auth vector,
* osmo_auth_gen_vec() increments the SQN. SQN-1 here
* to end up with the SQN the user requested. */