[PATCH V2 2/8] string: fix strncmp function

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Dec 18 07:15:51 EST 2013


On Wed, Dec 18, 2013 at 01:09:05PM +0100, Piotr Wilczek wrote:
> Now function returns the number of characters that differ in the
> compared strings.

I think this is a mistake.  You're defining a standard C function in
a non-standard way.  For strcmp() and strncmp(), the C standard
requires:

RETURN VALUE
       The strcmp() and strncmp() functions return an integer less than, equal
       to, or greater than zero if s1 (or the first n bytes thereof) is found,
       respectively, to be less than, to match, or be greater than s2.

If you implement something different to that, don't call it strcmp() or
strncmp() but something else, because you're not providing the correct
functionality, and that will just confuse people and lead to bugs.

For instance, can you be sure that there aren't any uses of strncmp()
which already test for less-than-zero etc?



More information about the linux-arm-kernel mailing list