summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/strstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/lib/strstr.c')
-rw-r--r--mdk-stage1/dietlibc/lib/strstr.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mdk-stage1/dietlibc/lib/strstr.c b/mdk-stage1/dietlibc/lib/strstr.c
index 641d9d7ac..0632cc28a 100644
--- a/mdk-stage1/dietlibc/lib/strstr.c
+++ b/mdk-stage1/dietlibc/lib/strstr.c
@@ -2,12 +2,14 @@
#include <string.h>
char *strstr(const char *haystack, const char *needle) {
- int nl=strlen(needle);
- int hl=strlen(haystack);
+ size_t nl=strlen(needle);
+ size_t hl=strlen(haystack);
int i;
+ if (!nl) goto found;
if (nl>hl) return 0;
for (i=hl-nl+1; i; --i) {
- if (!memcmp(haystack,needle,nl))
+ if (*haystack==*needle && !memcmp(haystack,needle,nl))
+found:
return (char*)haystack;
++haystack;
}