systemctl: remove compiler warning (#6717)
authorAlan Jenkins <alan.christopher.jenkins@gmail.com>
Fri, 1 Sep 2017 00:02:32 +0000 (01:02 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 1 Sep 2017 00:02:32 +0000 (09:02 +0900)
913c1916 changed _ACTION_INVALID to negative, changing the enum to a
signed type.  Take care to avoid comparing it with an unsigned type.

../src/systemctl/systemctl.c: In function â€˜start_unit’:
../src/systemctl/systemctl.c:3107:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 assert(arg_action < ELEMENTSOF(action_table));

src/systemctl/systemctl.c

index a533132..328b694 100644 (file)
@@ -3104,7 +3104,7 @@ static int start_unit(int argc, char *argv[], void *userdata) {
                         one_name = NULL;
                 }
         } else {
-                assert(arg_action < ELEMENTSOF(action_table));
+                assert(arg_action >= 0 && arg_action < _ACTION_MAX);
                 assert(action_table[arg_action].target);
                 assert(action_table[arg_action].mode);
 
@@ -8177,7 +8177,7 @@ _pure_ static int action_to_runlevel(void) {
                 [ACTION_RESCUE] =    '1'
         };
 
-        assert(arg_action < _ACTION_MAX);
+        assert(arg_action >= 0 && arg_action < _ACTION_MAX);
 
         return table[arg_action];
 }