Thank you Anatoly for finding this issue. In the code I tried to reuse the 
rte_member_free function to free memory but it may not be executed through. 

Because of this, I may not properly release setsum struct neither. I will post 
a fix for both soon.

Thanks

>-----Original Message-----
>From: Burakov, Anatoly
>Sent: Thursday, December 21, 2017 9:51 AM
>To: dev@dpdk.org
>Cc: Wang, Yipeng1 <yipeng1.w...@intel.com>; Gobriel, Sameh
><sameh.gobr...@intel.com>
>Subject: [PATCH] member: fix memory leak on error
>
>rte_member may have allocated a tailq entry before failure, so
>free it.
>
>Fixes: 857ed6c68cf2 ("member: implement main API")
>Cc: yipeng1.w...@intel.com
>Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com>
>---
> lib/librte_member/rte_member.c | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/lib/librte_member/rte_member.c
>b/lib/librte_member/rte_member.c
>index cc9ea84..569fff9 100644
>--- a/lib/librte_member/rte_member.c
>+++ b/lib/librte_member/rte_member.c
>@@ -191,6 +191,7 @@ rte_member_create(const struct
>rte_member_parameters *params)
>       return setsum;
>
> error_unlock_exit:
>+      rte_free(te);
>       rte_rwlock_write_unlock(RTE_EAL_TAILQ_RWLOCK);
>       rte_member_free(setsum);
>       return NULL;
>--
>2.7.4

Reply via email to