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
diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c
index 4e2456a..6b1e623 100644
--- a/utils/osmo-auc-gen.c
+++ b/utils/osmo-auc-gen.c
@@ -106,7 +106,6 @@
while (1) {
int c;
- unsigned long ul;
static struct option long_options[] = {
{ "2g", 0, 0, '2' },
{ "3g", 0, 0, '3' },
@@ -196,8 +195,7 @@
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. */