fix VTY parsing: subscriber-create-on-demand random

Fix parsing of the 'subscriber-create-on-demand random' VTY: atoi() is not
enough to include the specified range of 1-9999999999.

Use atoll() instead to ensure a large enough number space also on 32bit
systems.

(Note: for me, atoll() truncates at 32 bit when <stdlib.h> is not included.)

Add a VTY regression test for this.

Related: OS#2253
Change-Id: I353e04481ec567adca383d6b51ba8fb865eed73e
diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c
index f631bcc..e503291 100644
--- a/openbsc/src/libmsc/vty_interface_layer3.c
+++ b/openbsc/src/libmsc/vty_interface_layer3.c
@@ -1079,7 +1079,7 @@
       "Minimum for subscriber extension\n""Maximum for subscriber extension\n")
 {
 	struct gsm_network *gsmnet = gsmnet_from_vty(vty);
-	uint64_t mi = atoi(argv[0]), ma = atoi(argv[1]);
+	uint64_t mi = atoll(argv[0]), ma = atoll(argv[1]);
 	gsmnet->auto_create_subscr = true;
 	gsmnet->auto_assign_exten = true;
 	if (mi >= ma) {