This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][genattrtab] Fix memory corruption, allocate enough memory for all bypassed reservations



On 16/06/14 17:39, Jeff Law wrote:
On 06/16/14 04:12, Kyrill Tkachov wrote:

Doh, you're right. I did consider it but for some reason thought we
might want to iterate over all of the bypasses anyway. Breaking out
seems good.

How about this?
Tested on arm and aarch64 and confirmed with valgrind that no out of
bounds accesses occur.
I kicked off an x86_64 bootstrap but don't expect any problems.

Thanks,
Kyrill

genattrtab-bypasses.patch


commit 676b85f7a7cc1446482334dcaad457ac328875a8
Author: Kyrylo Tkachov<kyrylo.tkachov@arm.com>
Date:   Fri Jun 13 11:09:57 2014 +0100

      [genattrtab] Fix memory corruption with bypasses
I'm an idiot.  n_bypassed is used to size the vector, so you do have to
walk the entire list.

AFAICS in the loop in process_bypasses we want to count all the reservations which have a bypass matching them. Once a reservation is matched with a bypass it should be safe to break out of the inner loop (over the bypasses), even if two bypasses match a reservation we only want to count the reservation once.

So I think the 2nd version of the patch is good

Thanks,
Kyrill

Jeff







Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]