Fix: negative loop bound check
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 24 Jul 2017 21:15:53 +0000 (17:15 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 7 Aug 2017 20:54:27 +0000 (16:54 -0400)
Found by Coverity:

CID 1376197 (#1 of 1): Negative loop bound (NEGATIVE_RETURNS)
3. negative_returns: Using unsigned variable
bt_value_array_size(run_args) in a loop exit condition.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
cli/babeltrace-cfg-cli-args.c

index 4fba2b162a206e02562509f319cff65b6e4d4796..2978ab48a03f43ef3f539a0e14787cc6fae09b2c 100644 (file)
@@ -2719,7 +2719,7 @@ struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args,
 {
        struct bt_config *cfg = NULL;
        const char **argv;
-       size_t i;
+       int64_t i, len;
        const size_t argc = bt_value_array_size(run_args) + 1;
 
        argv = calloc(argc, sizeof(*argv));
@@ -2730,7 +2730,12 @@ struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args,
 
        argv[0] = "run";
 
-       for (i = 0; i < bt_value_array_size(run_args); i++) {
+       len = bt_value_array_size(run_args);
+       if (len < 0) {
+               printf_err("Invalid executable arguments\n");
+               goto end;
+       }
+       for (i = 0; i < len; i++) {
                int ret;
                struct bt_value *arg_value = bt_value_array_get(run_args, i);
                const char *arg;
This page took 0.026033 seconds and 4 git commands to generate.