Messages in this thread | | | Date | Thu, 11 Sep 2014 15:22:41 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH/RFC 1/2] lib: string: Remove duplicated function |
| |
On Wed, 27 Aug 2014 09:36:01 +0200 Rasmus Villemoes <linux@rasmusvillemoes.dk> 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.
| |