util/grub-mount: Check file path sanity

The function argp_parser() in util/grub-mount.c lacks a check on the
sanity of the file path when parsing parameters. This results in
a segmentation fault if a partition is mounted to a non-existent path.

Signed-off-by: Qiumiao Zhang <zhangqiumiao1@huawei.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Qiumiao Zhang 2023-10-25 11:54:57 +08:00 committed by Daniel Kiper
parent 85e40b36ed
commit 3f79e3b158

View File

@ -563,6 +563,8 @@ argp_parser (int key, char *arg, struct argp_state *state)
images = xrealloc (images, (num_disks + 1) * sizeof (images[0])); images = xrealloc (images, (num_disks + 1) * sizeof (images[0]));
images[num_disks] = grub_canonicalize_file_name (arg); images[num_disks] = grub_canonicalize_file_name (arg);
if (images[num_disks] == NULL)
grub_util_error (_("cannot find `%s': %s"), arg, strerror (errno));
num_disks++; num_disks++;
return 0; return 0;