examples/qos_sched: fix out-of-bounds option parsing
authorSlawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Thu, 21 Apr 2016 11:47:36 +0000 (13:47 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 16 May 2016 16:49:11 +0000 (18:49 +0200)
overrun-local: Overrunning array tokens of 8 8-byte elements
at element index 4294967294 (byte offset 34359738352)
using index i (which evaluates to 4294967294).

Coverity issue: 30708
Fixes: de3cfa2c9823 ("sched: initial import")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
examples/qos_sched/args.c

index 3e7fd08..d819269 100644 (file)
@@ -175,9 +175,11 @@ app_parse_opt_vals(const char *conf_str, char separator, uint32_t n_vals, uint32
 
        n_tokens = rte_strsplit(string, strnlen(string, 32), tokens, n_vals, separator);
 
-       for(i = 0; i < n_tokens; i++) {
+       if (n_tokens > MAX_OPT_VALUES)
+               return -1;
+
+       for (i = 0; i < n_tokens; i++)
                opt_vals[i] = (uint32_t)atol(tokens[i]);
-       }
 
        free(string);