return FALSE;
}
+static int scanf_safety(const char *format, ...)
+{
+ char line[256];
+ if (fgets(line, sizeof(line), stdin) == NULL)
+ return -1;
+
+ va_list args;
+ va_start(args, format);
+ int ret = vsscanf(line, format, args);
+ va_end(args);
+
+ return ret;
+}
+
static void print_menu()
{
fprintf(stderr, "============= LOCATION TEST =============\n");
fprintf(stderr, "[0] Exit!!!\n\n");
fprintf(stderr, "Select menu: ");
- if (scanf("%d", &menu) < 0)
+ if (scanf_safety("%d", &menu) < 0)
fprintf(stderr, "Can't read menu !!!\n");
}
int timeout = 60;
fprintf(stderr, "\n Input timeout ==> ");
- ret = scanf("%d", &timeout);
+ ret = scanf_safety("%d", &timeout);
int method = menu - 4;
ret = location_manager_create(method, &manager);
int interval = 1;
fprintf(stderr, "\n Input position interval ==> ");
- ret = scanf("%d", &interval);
+ ret = scanf_safety("%d", &interval);
if (interval > 120 || interval < 1)
interval = 1;
int method = menu - 21;
fprintf(stderr, "\n Input position interval ==> ");
- ret = scanf("%d", &interval);
+ ret = scanf_safety("%d", &interval);
ret = location_manager_create(method, &manager);
fprintf(stderr, "location_manager_create (method : %d)", method);
case 31: {
int interval = 1;
fprintf(stderr, "\n Input batch interval ==> ");
- ret = scanf("%d", &interval);
+ ret = scanf_safety("%d", &interval);
int period = 60;
fprintf(stderr, " Input batch period ==> ");
- ret = scanf("%d", &period);
+ ret = scanf_safety("%d", &period);
ret = location_manager_create(LOCATIONS_METHOD_GPS, &manager);
fprintf(stderr, "location_manager_create (method : %d)\n", LOCATIONS_METHOD_GPS);
int onoff = 1;
fprintf(stderr, "\n Mock Location (ON: 1 or OFF: 0) Input ==> ");
- ret = scanf("%d", &onoff);
+ ret = scanf_safety("%d", &onoff);
ret = location_manager_enable_mock_location(onoff);
fprintf(stderr, "Enabling mock test: ret=%d\n", ret);
int onoff = 1;
fprintf(stderr, "\n Input ON: 1 or OFF: 0 ==> ");
- ret = scanf("%d", &onoff);
+ ret = scanf_safety("%d", &onoff);
if (onoff == 0 || onoff == 1) {
ret = enable_method(method, onoff);