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) | |||
| 58 | } | 58 | } |
| 59 | EXPORT_SYMBOL(strncasecmp); | 59 | EXPORT_SYMBOL(strncasecmp); |
| 60 | #endif | 60 | #endif |
| 61 | #ifndef __HAVE_ARCH_STRNICMP | ||
| 62 | #undef strnicmp | ||
| 63 | int strnicmp(const char *s1, const char *s2, size_t len) | ||
| 64 | { | ||
| 65 | return strncasecmp(s1, s2, len); | ||
| 66 | } | ||
| 67 | EXPORT_SYMBOL(strnicmp); | ||
| 68 | #endif | ||
| 69 | 61 | ||
| 70 | #ifndef __HAVE_ARCH_STRCASECMP | 62 | #ifndef __HAVE_ARCH_STRCASECMP |
| 71 | int strcasecmp(const char *s1, const char *s2) | 63 | int strcasecmp(const char *s1, const char *s2) |
| @@ -321,12 +313,12 @@ EXPORT_SYMBOL(strchrnul); | |||
| 321 | */ | 313 | */ |
| 322 | char *strrchr(const char *s, int c) | 314 | char *strrchr(const char *s, int c) |
| 323 | { | 315 | { |
| 324 | const char *p = s + strlen(s); | 316 | const char *last = NULL; |
| 325 | do { | 317 | do { |
| 326 | if (*p == (char)c) | 318 | if (*s == (char)c) |
| 327 | return (char *)p; | 319 | last = s; |
| 328 | } while (--p >= s); | 320 | } while (*s++); |
| 329 | return NULL; | 321 | return (char *)last; |
| 330 | } | 322 | } |
| 331 | EXPORT_SYMBOL(strrchr); | 323 | EXPORT_SYMBOL(strrchr); |
| 332 | #endif | 324 | #endif |
| @@ -604,6 +596,11 @@ EXPORT_SYMBOL(memset); | |||
| 604 | * @s: Pointer to the start of the area. | 596 | * @s: Pointer to the start of the area. |
| 605 | * @count: The size of the area. | 597 | * @count: The size of the area. |
| 606 | * | 598 | * |
| 599 | * Note: usually using memset() is just fine (!), but in cases | ||
| 600 | * where clearing out _local_ data at the end of a scope is | ||
| 601 | * necessary, memzero_explicit() should be used instead in | ||
| 602 | * order to prevent the compiler from optimising away zeroing. | ||
| 603 | * | ||
| 607 | * memzero_explicit() doesn't need an arch-specific version as | 604 | * memzero_explicit() doesn't need an arch-specific version as |
| 608 | * it just invokes the one of memset() implicitly. | 605 | * it just invokes the one of memset() implicitly. |
| 609 | */ | 606 | */ |
