[dpdk-stable] [dpdk-dev] [PATCH 1/3] net/af_packet: fix check of file descriptors
wangyunjian
wangyunjian at huawei.com
Mon Jul 6 14:27:32 CEST 2020
From: Yunjian Wang <wangyunjian at huawei.com>
Zero is a valid fd. It will fail to check the fd if the fd is zero.
Fixes: 527740ccfaec ("af_packet: fix some leaks")
Cc: stable at dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian at huawei.com>
---
drivers/net/af_packet/rte_eth_af_packet.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index 22feb72..361b5d5 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -645,6 +645,8 @@ struct pmd_internals {
for (q = 0; q < nb_queues; q++) {
(*internals)->rx_queue[q].map = MAP_FAILED;
(*internals)->tx_queue[q].map = MAP_FAILED;
+ (*internals)->rx_queue[q].sockfd = -1;
+ (*internals)->tx_queue[q].sockfd = -1;
}
req = &((*internals)->req);
@@ -848,7 +850,7 @@ struct pmd_internals {
rte_free((*internals)->rx_queue[q].rd);
rte_free((*internals)->tx_queue[q].rd);
- if (((*internals)->rx_queue[q].sockfd != 0) &&
+ if (((*internals)->rx_queue[q].sockfd >= 0) &&
((*internals)->rx_queue[q].sockfd != qsockfd))
close((*internals)->rx_queue[q].sockfd);
}
--
1.8.3.1
More information about the stable
mailing list