app/test: fix memory corruption in reentrancy autotest
authorOlivier Matz <olivier.matz@6wind.com>
Mon, 11 Apr 2016 09:33:23 +0000 (11:33 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 11 Apr 2016 10:13:16 +0000 (12:13 +0200)
The mempool element size is set to 0, but 4 bytes are written in
my_obj_init():

  uint32_t *objnum = obj;
  memset(obj, 0, mp->elt_size);
  *objnum = i;

Change the MEMPOOL_ELT_SIZE constant to sizeof(uint32_t). This fixes
memory corruptions since we were writing outside of the object
boundaries.

Fixes: 104a92bd026 ("app: add reentrancy tests")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
app/test/test_func_reentrancy.c

index 300a3bc..d6e9dd8 100644 (file)
@@ -78,7 +78,7 @@ typedef void (*case_clean_t)(unsigned lcore_id);
 #define MAX_ITER_TIMES                      (16)
 #define MAX_LPM_ITER_TIMES                  (8)
 
-#define MEMPOOL_ELT_SIZE                    (0)
+#define MEMPOOL_ELT_SIZE                    (sizeof(uint32_t))
 #define MEMPOOL_SIZE                        (4)
 
 #define MAX_LCORES     RTE_MAX_MEMZONE / (MAX_ITER_TIMES * 4U)