[dpdk-dev] autotests: fix mempool element size in func_reentrancy
Commit Message
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 writting 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 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
2016-04-11 11:33, Olivier Matz:
> --- a/app/test/test_func_reentrancy.c
> +++ b/app/test/test_func_reentrancy.c
> @@ -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))
I understand the idea of the patch.
Using uint32_t would probably make a good fix ;)
Applied correctly, thanks
On 04/11/2016 12:12 PM, Thomas Monjalon wrote:
> 2016-04-11 11:33, Olivier Matz:
>> --- a/app/test/test_func_reentrancy.c
>> +++ b/app/test/test_func_reentrancy.c
>> @@ -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))
>
> I understand the idea of the patch.
> Using uint32_t would probably make a good fix ;)
> Applied correctly, thanks
You perfectly got the idea :)
Thanks and sorry for the typo...
@@ -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))
#define MEMPOOL_SIZE (4)
#define MAX_LCORES RTE_MAX_MEMZONE / (MAX_ITER_TIMES * 4U)