Re: [PATCH/RFC 1/2] lib: string: Remove duplicated function

From: Andrew Morton
Date: Thu Sep 11 2014 - 18:22:46 EST


On Wed, 27 Aug 2014 09:36:01 +0200 Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> wrote:

> lib/string.c contains two functions, strnicmp and strncasecmp, which
> do roughly the same thing, namely compare two strings
> case-insensitively up to a given bound. They have slightly different
> implementations, but the only important difference is that strncasecmp
> doesn't handle len==0 appropriately; it effectively becomes strcasecmp
> in that case. strnicmp correctly says that two strings are always
> equal in their first 0 characters.
>
> strncasecmp is the POSIX name for this functionality. So rename the
> non-broken function to the standard name. To minimize the impact on
> the rest of the kernel (and since both are exported to modules), make
> strnicmp a wrapper for strncasecmp.

I guess it's safe to assume that nobody was depending on the
strncasecmp() bug.

The existing strnicmp() implementation is rather verbose, but I expect
that avoiding the tolower() cost where possible makes sense.

Yes, please prepare the strnicmp()->strncasecmp() patches and let's get
them merged up. After a kernel release or two we can zap the
back-compat wrapper.


And it isn't just "out of tree modules" that we should be concerned
about - we'll commonly find that "to be in tree" code is using
interfaces which we're trying to alter or remove, so it takes a cycle
or two to get everything propagated. Most of this code can be found in
linux-next.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/