GCC strcmp optimizations causing valgrind uninitialized conditional jumps
Segher Boessenkool
segher at kernel.crashing.org
Wed Jul 4 05:18:33 AEST 2018
On Tue, Jul 03, 2018 at 11:59:14AM -0700, William Kennington wrote:
> Is there a bug tracking the issue?
https://bugs.kde.org/show_bug.cgi?id=386945
> Also, unless your malloc is
> guaranteed to be zeroing out the data or have a strcmp that is writing
> doubleworld aligned data to the string, the strcmp implementation is
> branching based on data existing after the null terminating character
> that may be uninitialized. Both sides of the branch do the right thing
> though, and locate the null terminator, throwing away the calculations
> done on the uninitialized data.
Yes, there is one branch that depends in part on irrelevant data, but
that is handled immediately afterwards.
> -fno-builtin-strcmp or -mstring-compare-inline-limit=0 do work fine
> but we don't control the binaries we are linking against in all cases
> and are seeing the issue pop up there.
Yeah, nasty. I don't know what to do then (other than fix valgrind, which
isn't so easy either though!)
Segher
More information about the Linuxppc-dev
mailing list