In grub-mount.c, the function argp_parser() 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 <zhangqiumi...@huawei.com>
---
 util/grub-mount.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/util/grub-mount.c b/util/grub-mount.c
index c69889df9..1d353f0df 100644
--- a/util/grub-mount.c
+++ b/util/grub-mount.c
@@ -563,6 +563,8 @@ argp_parser (int key, char *arg, struct argp_state *state)
 
   images = xrealloc (images, (num_disks + 1) * sizeof (images[0]));
   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++;
 
   return 0;
-- 
2.28.0.windows.1


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to