[dpdk-dev] autotests: fix mempool element size in func_reentrancy

Message ID 1460367203-30925-1-git-send-email-olivier.matz@6wind.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Olivier Matz April 11, 2016, 9:33 a.m. UTC
  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

Thomas Monjalon April 11, 2016, 10:12 a.m. UTC | #1
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
  
Olivier Matz April 11, 2016, 10:21 a.m. UTC | #2
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...
  

Patch

diff --git a/app/test/test_func_reentrancy.c b/app/test/test_func_reentrancy.c
index 300a3bc..e5b2821 100644
--- 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))
 #define MEMPOOL_SIZE                        (4)
 
 #define MAX_LCORES	RTE_MAX_MEMZONE / (MAX_ITER_TIMES * 4U)