tap: fix coverity warning 205875 30/23630/2
authorAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 25 Nov 2019 18:25:46 +0000 (18:25 +0000)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 25 Nov 2019 20:30:37 +0000 (20:30 +0000)
check the return result from fcntl, and if error, behave
the same way the expansion of _IOCTL macro does.

Type: fix
Change-Id: I6d537d1bdedae64470612aef64b46e07387fe84b
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
src/vnet/devices/tap/tap.c

index 5f6d720..288099e 100644 (file)
@@ -223,7 +223,12 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
   else
     host_if_name = (char *) args->host_if_name;
 
-  fcntl (tfd, F_SETFL, O_NONBLOCK);
+  if (fcntl (tfd, F_SETFL, O_NONBLOCK) < 0)
+    {
+      err = clib_error_return_unix (0, "fcntl(tfd, F_SETFL, O_NONBLOCK)");
+      tap_log_err (vif, "set nonblocking: %U", format_clib_error, err);
+      goto error;
+    }
 
   tap_log_dbg (vif, "TUNSETVNETHDRSZ: fd %d vnet_hdr_sz %u", tfd, hdrsz);
   _IOCTL (tfd, TUNSETVNETHDRSZ, &hdrsz);