diff options
Diffstat (limited to 'lib/string.c')
| -rw-r--r-- | lib/string.c | 25 | 
1 files changed, 11 insertions, 14 deletions
| diff --git a/lib/string.c b/lib/string.c index 10063300b830..ce81aaec3839 100644 --- a/lib/string.c +++ b/lib/string.c @@ -58,14 +58,6 @@ int strncasecmp(const char *s1, const char *s2, size_t len)  }  EXPORT_SYMBOL(strncasecmp);  #endif -#ifndef __HAVE_ARCH_STRNICMP -#undef strnicmp -int strnicmp(const char *s1, const char *s2, size_t len) -{ -	return strncasecmp(s1, s2, len); -} -EXPORT_SYMBOL(strnicmp); -#endif  #ifndef __HAVE_ARCH_STRCASECMP  int strcasecmp(const char *s1, const char *s2) @@ -321,12 +313,12 @@ EXPORT_SYMBOL(strchrnul);   */  char *strrchr(const char *s, int c)  { -       const char *p = s + strlen(s); -       do { -           if (*p == (char)c) -               return (char *)p; -       } while (--p >= s); -       return NULL; +	const char *last = NULL; +	do { +		if (*s == (char)c) +			last = s; +	} while (*s++); +	return (char *)last;  }  EXPORT_SYMBOL(strrchr);  #endif @@ -604,6 +596,11 @@ EXPORT_SYMBOL(memset);   * @s: Pointer to the start of the area.   * @count: The size of the area.   * + * Note: usually using memset() is just fine (!), but in cases + * where clearing out _local_ data at the end of a scope is + * necessary, memzero_explicit() should be used instead in + * order to prevent the compiler from optimising away zeroing. + *   * memzero_explicit() doesn't need an arch-specific version as   * it just invokes the one of memset() implicitly.   */ |