Parcourir la source

fix strcasestr failing to find zero-length needle

the loop condition ending on end-of-haystack ends before a zero-length
needle can be matched, so just explicitly check it before the loop.
Rich Felker il y a 2 semaines
Parent
commit
ae3a8c93a6
1 fichiers modifiés avec 1 ajouts et 0 suppressions
  1. 1 0
      src/string/strcasestr.c

+ 1 - 0
src/string/strcasestr.c

@@ -4,6 +4,7 @@
 char *strcasestr(const char *h, const char *n)
 {
 	size_t l = strlen(n);
+	if (!l) return (char *)h;
 	for (; *h; h++) if (!strncasecmp(h, n, l)) return (char *)h;
 	return 0;
 }