Reviewed-by: Vladimir Serbinenko <phco...@gmail.com>

Regards
Vladimir 'phcoder' Serbinenko

Le mar. 20 mai 2025, 05:03, Andrew Hamilton <adham...@gmail.com> a écrit :

> Correct ntfs_test test failures around attempting to validate attribute
> run list values. The calculation was incorrect for the 'curr' variable.
> With previous calculation, some file systems would fail validation
> despite being well-formed and valid. This was caused by incrementing
> 'curr' by min_size which included both the (already accounted for)
> min_size as well as the size of the run list. Correct by making a new
> variable 'run_size' to denote the current run list size to increment
> both 'curr' and 'min_size' separately.
>
> Fixes: 067b6d225 (fs/ntfs: Implement attribute verification)
>
> Signed-off-by: Andrew Hamilton <adham...@gmail.com>
> ---
>  grub-core/fs/ntfs.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c
> index b3117bf92..3eb70111b 100644
> --- a/grub-core/fs/ntfs.c
> +++ b/grub-core/fs/ntfs.c
> @@ -83,6 +83,7 @@ validate_attribute (grub_uint8_t *attr, void *end)
>  {
>    grub_size_t attr_size = 0;
>    grub_size_t min_size = 0;
> +  grub_size_t run_size = 0;
>    grub_size_t spare = (grub_uint8_t *) end - attr;
>    /*
>     * Just used as a temporary variable to try and deal with cases where
> someone
> @@ -174,8 +175,10 @@ validate_attribute (grub_uint8_t *attr, void *end)
>            * These directly follow the header byte, so we use them to
> update
>            * the minimum size.
>            */
> -         min_size += (attr[curr] & 0x7) + ((attr[curr] >> 4) & 0x7);
> -         curr += min_size;
> +         run_size = (attr[curr] & 0x7) + ((attr[curr] >> 4) & 0x7);
> +         curr += run_size;
> +         curr++;
> +         min_size += run_size;
>           min_size++;
>           if (min_size > attr_size)
>             goto fail;
> --
> 2.39.5
>
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to