aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/devices/af_packet
diff options
context:
space:
mode:
authorEyal Bari <ebari@cisco.com>2016-09-19 18:47:39 +0300
committerDamjan Marion <dmarion.lists@gmail.com>2016-09-20 17:29:19 +0000
commitf298ecfe1d408164dd2be5205824da9a6b218279 (patch)
tree52a2d1c7e465736fa62fed4e32a3119eadff80a4 /vnet/vnet/devices/af_packet
parentd334a6b458e2ea60ee82b402d4785f5a2abc3c24 (diff)
fd closed twice
fd close()ed after call to unix_file_del of same fd Change-Id: Ia8bf77b72b6cea7c70e004199ce11a33b6260720 Signed-off-by: Eyal Bari <ebari@cisco.com>
Diffstat (limited to 'vnet/vnet/devices/af_packet')
-rw-r--r--vnet/vnet/devices/af_packet/af_packet.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vnet/vnet/devices/af_packet/af_packet.c b/vnet/vnet/devices/af_packet/af_packet.c
index 17eddd658c0..cec25fed035 100644
--- a/vnet/vnet/devices/af_packet/af_packet.c
+++ b/vnet/vnet/devices/af_packet/af_packet.c
@@ -308,6 +308,9 @@ af_packet_delete_if (vlib_main_t * vm, u8 * host_if_name)
unix_file_del (&unix_main, unix_main.file_pool + apif->unix_file_index);
apif->unix_file_index = ~0;
}
+ else
+ close (apif->fd);
+
ring_sz = apif->rx_req->tp_block_size * apif->rx_req->tp_block_nr +
apif->tx_req->tp_block_size * apif->tx_req->tp_block_nr;
if (munmap (apif->rx_ring, ring_sz))
@@ -315,7 +318,6 @@ af_packet_delete_if (vlib_main_t * vm, u8 * host_if_name)
host_if_name);
apif->rx_ring = NULL;
apif->tx_ring = NULL;
- close (apif->fd);
apif->fd = -1;
vec_free (apif->rx_req);