Commit 442045cb authored by Max Reitz's avatar Max Reitz Committed by Kevin Wolf
Browse files

block/nbd: Reject port parameter without host



Currently, a port that is passed along with a UNIX socket path is
silently ignored. That is not exactly ideal, it should be an error
instead.

Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarKevin Wolf <kwolf@redhat.com>
Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 82d73014
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -197,6 +197,7 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QemuOpts *opts, Error **errp)

    s->path = g_strdup(qemu_opt_get(opts, "path"));
    s->host = g_strdup(qemu_opt_get(opts, "host"));
    s->port = g_strdup(qemu_opt_get(opts, "port"));

    if (!s->path == !s->host) {
        if (s->path) {
@@ -206,6 +207,10 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QemuOpts *opts, Error **errp)
        }
        return NULL;
    }
    if (s->port && !s->host) {
        error_setg(errp, "port may not be used without host");
        return NULL;
    }

    saddr = g_new0(SocketAddress, 1);

@@ -217,8 +222,6 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QemuOpts *opts, Error **errp)
    } else {
        InetSocketAddress *inet;

        s->port = g_strdup(qemu_opt_get(opts, "port"));

        saddr->type = SOCKET_ADDRESS_KIND_INET;
        inet = saddr->u.inet.data = g_new0(InetSocketAddress, 1);
        inet->host = g_strdup(s->host);