[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/1] util/grub-mkrescue: Check existence of option arguments
From: |
Thomas Schmitt |
Subject: |
[PATCH 1/1] util/grub-mkrescue: Check existence of option arguments |
Date: |
Mon, 17 Jun 2024 21:03:00 +0200 |
As reported by Victoriia Egorova in bug 65880, grub-mkrescue does not
verify that the expected argument of an option like -d or -k does really
exist in argv.
So check the loop counter before incrementing it inside the loop which
copies argv to argp_argv. Issue an error message similar to what older
versions of grub-mkrescue did with a missing argument (e.g 2.02).
Fixes: https://savannah.gnu.org/bugs/index.php?65880
Signed-off-by: Thomas Schmitt <scdbackup@gmx.net>
---
util/grub-mkrescue.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c
index abcc1c2f5..8714d819e 100644
--- a/util/grub-mkrescue.c
+++ b/util/grub-mkrescue.c
@@ -477,6 +477,9 @@ main (int argc, char *argv[])
for (i = 1; i < argc; i++)
{
if (strcmp (argv[i], "-output") == 0) {
+ if (i + 1 >= argc)
+ grub_util_error ("%s -- '%s'", _("option requires an argument"),
+ argv[i]);
argp_argv[argp_argc++] = (char *) "--output";
i++;
argp_argv[argp_argc++] = argv[i];
@@ -485,6 +488,9 @@ main (int argc, char *argv[])
switch (args_to_eat (argv[i]))
{
case 2:
+ if (i + 1 >= argc)
+ grub_util_error ("%s -- '%s'", _("option requires an argument"),
+ argv[i]);
argp_argv[argp_argc++] = argv[i++];
/* Fallthrough */
case 1:
--
2.39.2
- [PATCH 1/1] util/grub-mkrescue: Check existence of option arguments,
Thomas Schmitt <=