fs/ntfs: Correct next_attribute validation
Improved ad-hoc fuzzing coverage revealed a possible access violation around line 342 of grub-core/fs/ntfs.c when accessing the attr_cur pointer due to possibility of moving pointer "next" beyond of the end of the valid buffer inside next_attribute. Prevent this for cases where full attribute validation is not performed (such as on attribute lists) by performing a sanity check on the newly calculated next pointer. Fixes: 06914b614 (fs/ntfs: Correct attribute vs attribute list validation) Signed-off-by: Andrew Hamilton <adhamilt@gmail.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
5ff9c43cfe
commit
000e48b42c
@ -233,7 +233,12 @@ next_attribute (grub_uint8_t *curr_attribute, void *end, bool validate)
|
||||
return NULL;
|
||||
|
||||
next += u16at (curr_attribute, 4);
|
||||
if (validate && validate_attribute (next, end) == false)
|
||||
if (validate)
|
||||
{
|
||||
if (validate_attribute (next, end) == false)
|
||||
return NULL;
|
||||
}
|
||||
else if (next >= (grub_uint8_t *) end)
|
||||
return NULL;
|
||||
|
||||
return next;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user