lib/string.c: improve strrchr()
[firefly-linux-kernel-4.4.55.git] / lib / string.c
index 3206d01782969658a0e8838420224e6a4bf33c78..cdd97f431ae261bd270982cfab0867f3bfb45036 100644 (file)
@@ -313,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