From 16b00dc63f6106fe0964716ddca9af8a29fbf453 Mon Sep 17 00:00:00 2001
From: Seija Kijin <doremylover456@gmail.com>
Date: Fri, 13 Nov 2020 11:51:27 -0700
Subject: [PATCH] Make strstr.c in libiberty ANSI compliant

libiberty/

	* strstr.c (strstr): Make implementation ANSI/POSIX compliant.
---
 libiberty/strstr.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/libiberty/strstr.c b/libiberty/strstr.c
index 60902ea40ee8..c6f68495a33d 100644
--- a/libiberty/strstr.c
+++ b/libiberty/strstr.c
@@ -16,26 +16,20 @@ length, the function returns @var{string}.
 
 */
 
-
-/* FIXME:  The above description is ANSI compiliant.  This routine has not
-   been validated to comply with it.  -fnf */
-
 #include <stddef.h>
 
-extern char *strchr (const char *, int);
-extern int strncmp (const void *, const void *, size_t);
+extern int memcmp (const void *, const void *, size_t);
 extern size_t strlen (const char *);
 
 char *
 strstr (const char *s1, const char *s2)
 {
-  const char *p = s1;
   const size_t len = strlen (s2);
-
-  for (; (p = strchr (p, *s2)) != 0; p++)
+  while (*s1)
     {
-      if (strncmp (p, s2, len) == 0)
-	return (char *)p;
+      if (!memcmp (s1, s2, len))
+	return (char *)s1;
+      ++s1;
     }
   return (0);
 }
-- 
GitLab