]> git.droids-corp.org - dpdk.git/commitdiff
test/table: fix buffer overflow on lpm entry
authorVladimir Medvedkin <vladimir.medvedkin@intel.com>
Thu, 21 Apr 2022 17:35:27 +0000 (17:35 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Thu, 28 Apr 2022 10:39:11 +0000 (12:39 +0200)
This patch fixes stack buffer overflow reported by ASan.

Bugzilla ID: 820
Fixes: 5205954791cb ("app/test: packet framework unit tests")
Cc: stable@dpdk.org
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
app/test/test_table_tables.c

index d5c5a426bc7cfc3f334d18e2f482fd0b57a165f3..010dd5a7945cfbc3cb1bc2db0bf9e3c4853f1703 100644 (file)
@@ -292,10 +292,10 @@ test_table_lpm(void)
        struct rte_mbuf *mbufs[RTE_PORT_IN_BURST_SIZE_MAX];
        void *table;
        char *entries[RTE_PORT_IN_BURST_SIZE_MAX];
-       char entry;
+       uint64_t entry;
        void *entry_ptr;
        int key_found;
-       uint32_t entry_size = 1;
+       uint32_t entry_size = sizeof(entry);
 
        /* Initialize params and create tables */
        struct rte_table_lpm_params lpm_params = {
@@ -357,7 +357,7 @@ test_table_lpm(void)
        struct rte_table_lpm_key lpm_key;
        lpm_key.ip = 0xadadadad;
 
-       table = rte_table_lpm_ops.f_create(&lpm_params, 0, 1);
+       table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size);
        if (table == NULL)
                return -9;
 
@@ -458,10 +458,10 @@ test_table_lpm_ipv6(void)
        struct rte_mbuf *mbufs[RTE_PORT_IN_BURST_SIZE_MAX];
        void *table;
        char *entries[RTE_PORT_IN_BURST_SIZE_MAX];
-       char entry;
+       uint64_t entry;
        void *entry_ptr;
        int key_found;
-       uint32_t entry_size = 1;
+       uint32_t entry_size = sizeof(entry);
 
        /* Initialize params and create tables */
        struct rte_table_lpm_ipv6_params lpm_params = {