This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils 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] |
On Thu, Dec 11, 2014 at 05:34:06PM -0800, Josh Stone wrote: > BTW, I want to point out this change in compare_lines: > > > - return (*p1)->addr - (*p2)->addr; > [...] > > + if (line1->addr != line2->addr) > > + return (line1->addr < line2->addr) ? -1 : 1; > > Since addr is 64-bit unsigned, and comparison functions return int, it > is possible for the difference to be so large that it wraps around. You > only need INT_MAX or more -- which probably doesn't happen often in ELF > files, but it's plausible. > > It might be worth auditing other qsort/tsearch comparison functions for > similar wrapping possibilities. I think you are right. I looked over all compare functions and two didn't do as you suggest. The attached patch fixes those. Do that look correct? Thanks, Mark
Attachment:
0001-Guard-against-64bit-unsigned-wrap-around-in-int-comp.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |