vhost: fix potential null pointer dereference
authorYuanhan Liu <yuanhan.liu@linux.intel.com>
Tue, 28 Jun 2016 03:58:31 +0000 (11:58 +0800)
committerYuanhan Liu <yuanhan.liu@linux.intel.com>
Mon, 4 Jul 2016 02:08:41 +0000 (04:08 +0200)
Fix the potential NULL pointer dereference issue raised by Coverity.

    578             reconn = malloc(sizeof(*reconn));
    >>>     CID 127481:  Null pointer dereferences  (NULL_RETURNS)
    >>>     Dereferencing a null pointer "reconn".
    579             reconn->un = un;

Coverity issue: 127481
Fixes: e623e0c6d8a5 ("vhost: add reconnect ability")

Reported-by: John McNamara <john.mcnamara@intel.com>
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
lib/librte_vhost/vhost_user/vhost-net-user.c

index 67303a4..a0d83f3 100644 (file)
@@ -577,6 +577,12 @@ vhost_user_create_client(struct vhost_user_socket *vsocket)
 
        RTE_LOG(ERR, VHOST_CONFIG, "%s: reconnecting...\n", path);
        reconn = malloc(sizeof(*reconn));
+       if (reconn == NULL) {
+               RTE_LOG(ERR, VHOST_CONFIG,
+                       "failed to allocate memory for reconnect\n");
+               close(fd);
+               return -1;
+       }
        reconn->un = un;
        reconn->fd = fd;
        reconn->vsocket = vsocket;