From c3225ddf8a3db9ee0f0d6edb7d82717d8cf20b36 Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Tue, 26 Oct 2021 16:19:45 +0200 Subject: devices: fix coverity warning/don't leak fd Move socket creation past code which returns from function to avoid leaking the socket in case of an early error return. Type: fix Signed-off-by: Klement Sekera Change-Id: I9e18bd32022441c17ca920d1c2458b058b76c3c0 --- src/vnet/devices/af_packet/device.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/vnet/devices') diff --git a/src/vnet/devices/af_packet/device.c b/src/vnet/devices/af_packet/device.c index 8e4bc2b6b7f..c8e59c3566c 100644 --- a/src/vnet/devices/af_packet/device.c +++ b/src/vnet/devices/af_packet/device.c @@ -336,7 +336,7 @@ static clib_error_t *af_packet_set_mac_address_function af_packet_main_t *apm = &af_packet_main; af_packet_if_t *apif = pool_elt_at_index (apm->interfaces, hi->dev_instance); - int rv, fd = socket (AF_UNIX, SOCK_DGRAM, 0); + int rv, fd; struct ifreq ifr; if (apif->mode == AF_PACKET_IF_MODE_IP) @@ -347,6 +347,7 @@ static clib_error_t *af_packet_set_mac_address_function " MAC update failed, interface is in IP mode"); } + fd = socket (AF_UNIX, SOCK_DGRAM, 0); if (0 > fd) { vlib_log_warn (apm->log_class, "af_packet_%s could not open socket", -- cgit 1.2.3-korg