Re: [PATCH] Add git-imap-send.
- From
- Mark Wooding <mdw@distorted.org.uk>
- Date
- Mar 9, 2006, 13:26 UTC
- Message-ID
- <slrne10b8c.fr9.mdw@metalzone.distorted.org.uk>
- In-Reply-To
- <Pine.LNX.4.63.0603091243001.20908@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> Sorry, I was unclear. Of course, memcmp() does not stop on NUL. But it > stops when that NUL is different from what the other pointer has. Which is > the case here.
Does it really? My copy of the spec doesn't say that. It says only this:
: 7.21.4.1 The memcmp function : : Synopsis : : #include <string.h> : int memcmp(const void *s1, const void *s2, size_t n); : : Description : : The memcmp() function compares the first n characters of the object : pointed to by s1 to the first n characters of the object pointed to by : s2.262) : : Returns : : The memcmp function returns an integer greater than, equal to, or less : than zero, accordingly as the object pointed to by s1 is greater than, : equal to, or less than the object pointed to by s2. : : 262) The contents of ``holes'' used as padding for purposes of : alignment within structure objects are indeterminate. Strings shorter : than their allocated space and unions may also cause problems in : comparison.
There are reasons for which it'd be desirable that memcmp really compare all the bytes, even if it can in theory stop early: in particular, there are cases where early exit can leak timing information which makes it possible to attack cryptographic protocols.
I'd have to recommend strncmp for this job.
-- [mdw]