hi, yunjian
On 7/2/2020 7:47 PM, wangyunjian wrote:
From: Yunjian Wang <wangyunj...@huawei.com>
The event_cb->dev_name is not freed when freeing event_cb,
and this causes a memory leak.
Fixes: a753e53d517b ("eal: add device event monitor framework")
Cc: sta...@dpdk.org
Signed-off-by: Yunjian Wang <wangyunj...@huawei.com>
---
lib/librte_eal/common/eal_common_dev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/librte_eal/common/eal_common_dev.c
b/lib/librte_eal/common/eal_common_dev.c
index 9e4f09d..4cfdb80 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -526,6 +526,8 @@ static int cmp_dev_name(const struct rte_device *dev, const
void *_name)
*/
if (event_cb->active == 0) {
TAILQ_REMOVE(&dev_event_cbs, event_cb, next);
+ if (event_cb->dev_name)
+ free(event_cb->dev_name);
free(event_cb);
ret++;
} else {
After you check, don't you think the memory leak would not occur in
rte_dev_event_callback_register when free event_cb? And if you have find
other same problem, suggest to fix it wholly by this good chance. Thanks.
int
rte_dev_event_callback_register(const char *device_name,
rte_dev_event_cb_fn cb_fn,
void *cb_arg)
{
error:
free(event_cb);
rte_spinlock_unlock(&dev_event_lock);
return ret;
}