util/grub-mkrescue: Check existence of option arguments
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> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
ab9fe80300
commit
b53ec06a1d
@ -477,6 +477,8 @@ 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 +487,8 @@ 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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user