[web_server_idf] Remove std::string temporaries from multipart header parsing (#13940)
This commit is contained in:
1 parent
fecb145a71
commit
ae42bfa404
5 files changed
+67
-49
No files matched your search
@@ -98,8 +98,8 @@ bool str_ncmp_ci(const char *s1, const char *s2, size_t n) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Case-insensitive string search (like strstr but case-insensitive)
|
||||
const char *stristr(const char *haystack, const char *needle) {
|
||||
// Bounded case-insensitive string search (like strcasestr but length-bounded)
|
||||
const char *strcasestr_n(const char *haystack, size_t haystack_len, const char *needle) {
|
||||
if (!haystack) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -109,7 +109,12 @@ const char *stristr(const char *haystack, const char *needle) {
|
||||
return haystack;
|
||||
}
|
||||
|
||||
for (const char *p = haystack; *p; p++) {
|
||||
if (haystack_len < needle_len) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char *end = haystack + haystack_len - needle_len + 1;
|
||||
for (const char *p = haystack; p < end; p++) {
|
||||
if (str_ncmp_ci(p, needle, needle_len)) {
|
||||
return p;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user