diff --git a/mongoose.c b/mongoose.c index 6b258f5b..e946730f 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4930,6 +4930,7 @@ const char *mg_strstr(const struct mg_str haystack, const struct mg_str needle) { size_t i; if (needle.len > haystack.len) return NULL; + if (needle.len == 0) return haystack.ptr; for (i = 0; i <= haystack.len - needle.len; i++) { if (memcmp(haystack.ptr + i, needle.ptr, needle.len) == 0) { return haystack.ptr + i; diff --git a/src/str.c b/src/str.c index 329a067d..20af52e7 100644 --- a/src/str.c +++ b/src/str.c @@ -74,6 +74,7 @@ const char *mg_strstr(const struct mg_str haystack, const struct mg_str needle) { size_t i; if (needle.len > haystack.len) return NULL; + if (needle.len == 0) return haystack.ptr; for (i = 0; i <= haystack.len - needle.len; i++) { if (memcmp(haystack.ptr + i, needle.ptr, needle.len) == 0) { return haystack.ptr + i;