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++)
|
for (i = 1; i < argc; i++)
|
||||||
{
|
{
|
||||||
if (strcmp (argv[i], "-output") == 0) {
|
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";
|
argp_argv[argp_argc++] = (char *) "--output";
|
||||||
i++;
|
i++;
|
||||||
argp_argv[argp_argc++] = argv[i];
|
argp_argv[argp_argc++] = argv[i];
|
||||||
@ -485,6 +487,8 @@ main (int argc, char *argv[])
|
|||||||
switch (args_to_eat (argv[i]))
|
switch (args_to_eat (argv[i]))
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
|
if (i + 1 >= argc)
|
||||||
|
grub_util_error ("%s -- '%s'", _("option requires an argument"), argv[i]);
|
||||||
argp_argv[argp_argc++] = argv[i++];
|
argp_argv[argp_argc++] = argv[i++];
|
||||||
/* Fallthrough */
|
/* Fallthrough */
|
||||||
case 1:
|
case 1:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user