From: Junio C Hamano Date: Wed, 16 Mar 2011 20:18:04 GMT Subject: Re: [PATCH] valgrind: ignore SSE-based strlen invalid reads Message-ID: <7vr5a67rb7.fsf@alter.siamese.dyndns.org> In-Reply-To: <1300275961-5798-1-git-send-email-cmn@elego.de> Carlos Martín Nieto writes: > 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 > --- > >>> 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.