From d91896c0766f0aad3ad9121682afd519bcf21270 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 21 Apr 2026 07:46:52 +0200 Subject: [PATCH 1/2] nbd-client: support device with and without '/dev/' prefix This broke with 8273f1edee33ce58e9468ed56f3d152f3f226eee, where prefix must not be given. Fixes: https://github.com/NetworkBlockDevice/nbd/issues/187 Signed-off-by: Christian Hesse --- nbd-client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nbd-client.c b/nbd-client.c index c5d2b32b..d8c0a0f2 100644 --- a/nbd-client.c +++ b/nbd-client.c @@ -228,8 +228,10 @@ static void netlink_disconnect(char *nbddev) { int index = -1; if (nbddev) { - if (sscanf(nbddev, "nbd%d", &index) != 1) + if (sscanf(nbddev, "/dev/nbd%d", &index) != 1 && + sscanf(nbddev, "nbd%d", &index) != 1) { err("Invalid nbd device target\n"); + } } if (index < 0) err("Invalid nbd device target\n"); @@ -1539,8 +1541,10 @@ int main(int argc, char *argv[]) { if (netlink) { int index = -1; if (cur_client->dev) { - if (sscanf(cur_client->dev, "nbd%d", &index) != 1) + if (sscanf(cur_client->dev, "/dev/nbd%d", &index) != 1 && + sscanf(cur_client->dev, "nbd%d", &index) != 1) { err("Invalid nbd device target\n"); + } } netlink_configure(index, sockfds, flags, identifier); From 7b894e0e1e020b731b279b84110ed75e1e0ebb80 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 21 Apr 2026 07:47:05 +0200 Subject: [PATCH 2/2] nbd-client: use concatenation in condition... ... just as in previous commit. Signed-off-by: Christian Hesse --- nbd-client.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/nbd-client.c b/nbd-client.c index d8c0a0f2..7cb46eb2 100644 --- a/nbd-client.c +++ b/nbd-client.c @@ -318,10 +318,9 @@ static int netlink_check_conn(char* devname, int do_print) { int connected = -1; /* -1 = unknown, 0 = connected, 1 = disconnected */ /* Parse device index from name */ - if (sscanf(devname, "/dev/nbd%d", &index) != 1) { - if (sscanf(devname, "nbd%d", &index) != 1) { - return 2; /* Invalid device name */ - } + if (sscanf(devname, "/dev/nbd%d", &index) != 1 && + sscanf(devname, "nbd%d", &index) != 1) { + return 2; /* Invalid device name */ } /* Setup netlink socket */