From 3c98bdcc1f9b13de8a9d54d034efea789978c1f9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Sun, 24 Aug 2025 11:45:45 +0200 Subject: [PATCH] sfdisk: reject spurious arguments for --reorder/--backup-pt-sectors MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit These commands only accept a single device argument. Reject any additional unexpected arguments. Signed-off-by: Thomas Weißschuh --- disk-utils/sfdisk.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c index ad9bbb3cf..b754916ef 100644 --- a/disk-utils/sfdisk.c +++ b/disk-utils/sfdisk.c @@ -1025,13 +1025,14 @@ static int command_delete(struct sfdisk *sf, int argc, char **argv) */ static int command_reorder(struct sfdisk *sf, int argc, char **argv) { - const char *devname = NULL; + const char *devname; int rc; - if (argc) - devname = argv[0]; - if (!devname) + if (!argc) errx(EXIT_FAILURE, _("no disk device specified")); + devname = argv[0]; + if (argc > 1) + errx(EXIT_FAILURE, _("unexpected arguments")); assign_device(sf, devname, 0); /* read-write */ @@ -1049,14 +1050,15 @@ static int command_reorder(struct sfdisk *sf, int argc, char **argv) */ static int command_dump(struct sfdisk *sf, int argc, char **argv) { - const char *devname = NULL; struct fdisk_script *dp; + const char *devname; int rc; - if (argc) - devname = argv[0]; - if (!devname) + if (!argc) errx(EXIT_FAILURE, _("no disk device specified")); + devname = argv[0]; + if (argc > 1) + errx(EXIT_FAILURE, _("unexpected arguments")); assign_device(sf, devname, 1); /* read-only */ @@ -1085,12 +1087,13 @@ static int command_dump(struct sfdisk *sf, int argc, char **argv) */ static int command_backup_sectors(struct sfdisk *sf, int argc, char **argv) { - const char *devname = NULL; + const char *devname; - if (argc) - devname = argv[0]; - if (!devname) + if (!argc) errx(EXIT_FAILURE, _("no disk device specified")); + devname = argv[0]; + if (argc > 1) + errx(EXIT_FAILURE, _("unexpected arguments")); assign_device(sf, devname, 1); /* read-only */ -- 2.47.3