34 lines
1.0 KiB
Diff
34 lines
1.0 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: B Horn <b@horn.uk>
|
||
|
Date: Sun, 12 May 2024 06:37:08 +0100
|
||
|
Subject: [PATCH] fs/iso9660: Set a grub_errno if mount fails
|
||
|
|
||
|
It was possible for a grub_errno to not be set if mount of an ISO 9660
|
||
|
filesystem failed when set_rockridge() returned 0.
|
||
|
|
||
|
This isn't known to be exploitable as the other filesystems due to
|
||
|
filesystem helper checking the requested file type. Though fixing
|
||
|
as a precaution.
|
||
|
|
||
|
Reported-by: B Horn <b@horn.uk>
|
||
|
Signed-off-by: B Horn <b@horn.uk>
|
||
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||
|
---
|
||
|
grub-core/fs/iso9660.c | 3 +++
|
||
|
1 file changed, 3 insertions(+)
|
||
|
|
||
|
diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c
|
||
|
index ac011950a..82cf1a271 100644
|
||
|
--- a/grub-core/fs/iso9660.c
|
||
|
+++ b/grub-core/fs/iso9660.c
|
||
|
@@ -491,6 +491,9 @@ grub_iso9660_mount (grub_disk_t disk)
|
||
|
return data;
|
||
|
|
||
|
fail:
|
||
|
+ if (grub_errno == GRUB_ERR_NONE)
|
||
|
+ grub_error (GRUB_ERR_BAD_FS, "not a ISO9660 filesystem");
|
||
|
+
|
||
|
grub_free (data);
|
||
|
return 0;
|
||
|
}
|