examples/vhost: fix path allocation failure handling
authorTiwei Bie <tiwei.bie@intel.com>
Tue, 15 Jan 2019 07:13:24 +0000 (15:13 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 18 Jan 2019 08:47:26 +0000 (09:47 +0100)
Add the missing failure handling for path allocation,
as realloc() may fail.

Fixes: ad0eef4d2203 ("examples/vhost: support multiple socket files")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
examples/vhost/main.c

index 645cf51..5e914f5 100644 (file)
@@ -353,11 +353,19 @@ port_init(uint16_t port)
 static int
 us_vhost_parse_socket_path(const char *q_arg)
 {
+       char *old;
+
        /* parse number string */
        if (strnlen(q_arg, PATH_MAX) == PATH_MAX)
                return -1;
 
+       old = socket_files;
        socket_files = realloc(socket_files, PATH_MAX * (nb_sockets + 1));
+       if (socket_files == NULL) {
+               free(old);
+               return -1;
+       }
+
        snprintf(socket_files + nb_sockets * PATH_MAX, PATH_MAX, "%s", q_arg);
        nb_sockets++;