]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
sfdisk: reject spurious arguments for --reorder/--backup-pt-sectors
authorThomas Weißschuh <thomas@t-8ch.de>
Sun, 24 Aug 2025 09:45:45 +0000 (11:45 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 9 Sep 2025 10:12:49 +0000 (12:12 +0200)
These commands only accept a single device argument.
Reject any additional unexpected arguments.

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
(cherry picked from commit 3c98bdcc1f9b13de8a9d54d034efea789978c1f9)

disk-utils/sfdisk.c

index f7b10131055e79d453fb96d54e47c0d46f9e7f25..395ea61c190d2a13a2f4797312129b8b229dfcff 100644 (file)
@@ -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 */