OSDN Git Service

bootctl: Fix the error checking for strtol result.
[android-x86/system-extras.git] / bootctl / bootctl.c
index 55eb5bf..58fdbb6 100644 (file)
@@ -132,13 +132,14 @@ static int parse_slot(int pos, int argc, char *argv[])
         exit(EX_USAGE);
         return -1;
     }
-    int ret = strtol(argv[pos], NULL, 10);
-    if (ret == LONG_MIN || ret == LONG_MAX) {
+    errno = 0;
+    long int ret = strtol(argv[pos], NULL, 10);
+    if (errno != 0 || ret > INT_MAX || ret < 0) {
         usage(stderr, argc, argv);
         exit(EX_USAGE);
         return -1;
     }
-    return ret;
+    return (int)ret;
 }
 
 int main(int argc, char *argv[])