[PATCH] memcmp() kernel janitor (was: memcmp() doesn't)

From: Georg Nikodym (georgn@somanetworks.com)
Date: Thu Feb 14 2002 - 09:39:24 EST


On Tue, 2002-02-12 at 22:51, Georg Nikodym wrote:

> I can supply patches in BK or regular form but I suspect it'd be easier
> for somebody "in the club" to simply make this change themselves.

At the prompting of Ingo Oeser, here's a patch. A BK patch has already
been sent to Linus.

CSET comment:

  Fix generic memcmp() to correctly sign the return value.
  
  Non x86 architectures using memcmp() in situations where the sign
  of the return value matters would get the wrong answer (in
  signed 8-bit arithmetic, 0 - 221 = 35, rather than the -221
  that many might assume/expect).

Patch:

--- a/lib/string.c Thu Feb 14 09:33:48 2002
+++ b/lib/string.c Thu Feb 14 09:33:48 2002
@@ -452,7 +452,7 @@
 int memcmp(const void * cs,const void * ct,size_t count)
 {
         const unsigned char *su1, *su2;
- signed char res = 0;
+ int res = 0;
 
         for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
                 if ((res = *su1 - *su2) != 0)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Feb 15 2002 - 21:01:01 EST