[dpdk-dev] [PATCH v2 6/8] ipc: fix tap pmd memleak

Herakliusz Lipiec herakliusz.lipiec at intel.com
Tue Apr 23 19:43:32 CEST 2019


When sending synchronous IPC requests, the caller must free the response 
buffer even if the request returned failure. Fix the code to correctly 
use the IPC API.

Bugzilla ID: 228
Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary")
Cc: rasland at mellanox.com
Cc: stable at dpdk.org
Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec at intel.com>
---
 drivers/net/tap/rte_eth_tap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index e9fda8cf6..d70412d62 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -2104,6 +2104,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev)
 	if (ret < 0) {
 		TAP_LOG(ERR, "Failed to request queues from primary: %d",
 			rte_errno);
+		free(replies.msgs);
 		return -1;
 	}
 	reply = &replies.msgs[0];
@@ -2119,6 +2120,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev)
 	for (queue = 0; queue < reply_param->txq_count; queue++)
 		process_private->txq_fds[queue] = reply->fds[fd_iterator++];
 
+	free(replies.msgs);
 	return 0;
 }
 
-- 
2.17.2



More information about the dev mailing list