[PATCH] x86/CET: Don't parse beyond the note end
Florian Weimer
fweimer@redhat.com
Fri Jul 27 20:39:00 GMT 2018
On 07/27/2018 08:47 PM, H.J. Lu wrote:
> On Fri, Jul 27, 2018 at 11:26 AM, Florian Weimer <fweimer@redhat.com> wrote:
>> On 07/27/2018 08:22 PM, H.J. Lu wrote:
>>>
>>> - while (1)
>>> + while (ptr < ptr_end)
>>> {
>>> unsigned int type = *(unsigned int *) ptr;
>>> unsigned int datasz = *(unsigned int *) (ptr + 4);
>>
>>
>> You need 1 byte, but 8 bytes. Why is checking for at least 1 byte
>> sufficient here?
>>
>
> There is:
>
> /* Check for invalid property. */
> if (note->n_descsz < 8
> || (note->n_descsz % sizeof (ElfW(Addr))) != 0)
> break;
>
> before that. n_descsz should be correct.
I do not have a strong opinion regarding this matter. For correctly
generated notes, your patch should be fine.
Thanks,
Florian
More information about the Libc-alpha
mailing list