app/testpmd: fix potential out of bounds read
authorJulien Cretin <julien.cretin@trust-in-soft.com>
Mon, 9 Mar 2015 13:21:09 +0000 (14:21 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 23 Mar 2015 11:35:20 +0000 (12:35 +0100)
After the last enabled port has been seen, and the last time we
evaluate the loop condition, there is an out of bounds read in
ports[p].enabled because p is equal to size, which is the length of
ports.

Signed-off-by: Julien Cretin <julien.cretin@trust-in-soft.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
app/test-pmd/testpmd.c

index 4828354..3057791 100644 (file)
@@ -332,7 +332,7 @@ find_next_port(portid_t p, struct rte_port *ports, int size)
        if (ports == NULL)
                rte_exit(-EINVAL, "failed to find a next port id\n");
 
-       while ((ports[p].enabled == 0) && (p < size))
+       while ((p < size) && (ports[p].enabled == 0))
                p++;
        return p;
 }