fs/fshelp: Avoid possible NULL pointer deference

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 <adhamilt@gmail.com>
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Andrew Hamilton 2025-05-21 22:20:41 -05:00 committed by Daniel Kiper
parent 272ff81cb2
commit b71bc0f8b4

View File

@ -226,7 +226,10 @@ find_file (char *currpath,
return grub_error (GRUB_ERR_SYMLINK_LOOP, return grub_error (GRUB_ERR_SYMLINK_LOOP,
N_("too deep nesting of symlinks")); 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_FS, "read_symlink is NULL");
if (!symlink) if (!symlink)
return grub_errno; return grub_errno;