]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
net/passt: Remove dead code in passt_vhost_user_start error path (CID 1612371)
authorLaurent Vivier <lvivier@redhat.com>
Thu, 17 Jul 2025 15:08:02 +0000 (17:08 +0200)
committerJason Wang <jasowang@redhat.com>
Mon, 21 Jul 2025 02:22:49 +0000 (10:22 +0800)
In passt_vhost_user_start(), if vhost_net_init() fails, the "net"
variable is NULL and execution jumps to the "err:" label.

The cleanup code within this label is conditioned on "if (net)",
which can never be true in this error case. This makes the cleanup
block dead code, as reported by Coverity (CID 1612371).

Refactor the error handling to occur inline, removing the goto and
the unreachable cleanup block.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
net/passt.c

index 9cd5b3e6f2af90f0db140d86e6cd7048bb42f1f1..ef59d0682be19179d5dd0782c52984b48f1ba074 100644 (file)
@@ -375,7 +375,8 @@ static int passt_vhost_user_start(NetPasstState *s, VhostUserState *be)
     net = vhost_net_init(&options);
     if (!net) {
         error_report("failed to init passt vhost_net");
-        goto err;
+        passt_vhost_user_stop(s);
+        return -1;
     }
 
     if (s->vhost_net) {
@@ -385,13 +386,6 @@ static int passt_vhost_user_start(NetPasstState *s, VhostUserState *be)
     s->vhost_net = net;
 
     return 0;
-err:
-    if (net) {
-        vhost_net_cleanup(net);
-        g_free(net);
-    }
-    passt_vhost_user_stop(s);
-    return -1;
 }
 
 static void passt_vhost_user_event(void *opaque, QEMUChrEvent event)