Re: [PATCH] valgrind: ignore SSE-based strlen invalid reads
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 16, 2011, 20:18 UTC
- Message-ID
- <7vr5a67rb7.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1300275961-5798-1-git-send-email-cmn@elego.de>
Carlos Martín Nieto <cmn@elego.de> writes:
Show 24 quoted lines
> Some versions of strlen use SSE to speed up the calculation and load 4 > bytes at a time, even if it means reading past the end of the > allocated memory. This read is safe and when the strlen function is > inlined, it is not replaced by valgrind, which reports a > false-possitive. > > Tell valgrind to ignore this particular error, as the read is, in > fact, safe. Current upstream-released version 2.6.1 is affected. Some > distributions have this fixed in their latest versions. > > Signed-off-by: Carlos Martín Nieto <cmn@elego.de> > --- > >>> I think 3.6.1 doesn't need it, as Debian's 1:3.5.0+3.6.0svn20100609-1 >>> version is reportedly fixed. >> >>Ah, nice. A phrase like "some versions of valgrind before 3.6.1" >>would be fine with me fwiw. :) > > I just downloaded and compiled the upstream release 2.6.1 and it's > still affected (it does fix some other related > false-positives). Fedorea rawhide has the fix in, according to their > bug tracker. I haven't tested the reportedly-fixed version in Debian > yet.
I take it that you meant 3.6.1 in both places above?
This somehow reminds me of my past life where I saw a buggy implementation of strlen() in the C library loaded one word too many from memory, and segfaulted even when the string ended before the end of a mapped page when the next page was unmapped.
Anyway, nice digging.