vhost: check poll error code
authorKuba Kozak <kubax.kozak@intel.com>
Fri, 22 Sep 2017 12:17:40 +0000 (14:17 +0200)
committerYuanhan Liu <yliu@fridaylinux.org>
Tue, 10 Oct 2017 13:54:31 +0000 (15:54 +0200)
Add return value check for poll() call.

Coverity issue: 140740
Fixes: 59317cef249c ("vhost: allow many vhost-user ports")
Cc: stable@dpdk.org
Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
lib/librte_vhost/fd_man.c

index 2ceacc9..4c6fed4 100644 (file)
@@ -222,6 +222,7 @@ fdset_event_dispatch(void *arg)
        int remove1, remove2;
        int need_shrink;
        struct fdset *pfdset = arg;
+       int val;
 
        if (pfdset == NULL)
                return NULL;
@@ -239,7 +240,9 @@ fdset_event_dispatch(void *arg)
                numfds = pfdset->num;
                pthread_mutex_unlock(&pfdset->fd_mutex);
 
-               poll(pfdset->rwfds, numfds, 1000 /* millisecs */);
+               val = poll(pfdset->rwfds, numfds, 1000 /* millisecs */);
+               if (val < 0)
+                       continue;
 
                need_shrink = 0;
                for (i = 0; i < numfds; i++) {