This is the mail archive of the
mailing list for the elfutils project.
Re: [PATCH 1/3] libdw: Make srclines use a stable sort
- From: Josh Stone <jistone at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Thu, 11 Dec 2014 17:34:06 -0800
- Subject: Re: [PATCH 1/3] libdw: Make srclines use a stable sort
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.