Avoid attempting to defererence a NULL pointer to call read_symlink when the 
given filesystem does not provide a read_symlink function. This could be 
triggered if the calling filesystem had a file marked as a symlink.
This appears possible for HFS and was observed during fuzzing of NTFS.

Signed-off-by: Andrew Hamilton <adham...@gmail.com>
---
 grub-core/fs/fshelp.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/grub-core/fs/fshelp.c b/grub-core/fs/fshelp.c
index cb41934b4..a9d24a908 100644
--- a/grub-core/fs/fshelp.c
+++ b/grub-core/fs/fshelp.c
@@ -226,7 +226,10 @@ find_file (char *currpath,
            return grub_error (GRUB_ERR_SYMLINK_LOOP,
                               N_("too deep nesting of symlinks"));
 
-         symlink = read_symlink (ctx->currnode->node);
+         if (read_symlink != NULL)
+           symlink = read_symlink (ctx->currnode->node);
+         else
+           return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("read_symlink is 
NULL"));
 
          if (!symlink)
            return grub_errno;
-- 
2.39.5


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

Reply via email to