mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-29 16:25:54 +08:00
make match_prefix() case-insensitive
This commit is contained in:
parent
f32e14478f
commit
62d66201c9
@ -874,6 +874,7 @@ static const char *next_option(const char *list, struct vec *val,
|
||||
return list;
|
||||
}
|
||||
|
||||
// Perform case-insensitive match of string against pattern
|
||||
static int match_prefix(const char *pattern, int pattern_len, const char *str) {
|
||||
const char *or_str;
|
||||
int i, j, len, res;
|
||||
@ -906,7 +907,7 @@ static int match_prefix(const char *pattern, int pattern_len, const char *str) {
|
||||
res = match_prefix(pattern + i, pattern_len - i, str + j + len);
|
||||
} while (res == -1 && len-- > 0);
|
||||
return res == -1 ? -1 : j + res + len;
|
||||
} else if (pattern[i] != str[j]) {
|
||||
} else if (lowercase(&pattern[i]) != lowercase(&str[j])) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ my $cmd = "$mongoose_exe ".
|
||||
'-put_delete_auth_file test/passfile ' .
|
||||
'-access_control_list -0.0.0.0/0,+127.0.0.1 ' .
|
||||
"-document_root $root ".
|
||||
"-hide_files_patterns **exploit.pl ".
|
||||
"-hide_files_patterns **exploit.PL ".
|
||||
"-enable_keep_alive yes ".
|
||||
"-url_rewrite_patterns /aiased=/etc/,/ta=$test_dir";
|
||||
$cmd .= ' -cgi_interpreter perl' if on_windows();
|
||||
|
@ -154,7 +154,8 @@ static void test_match_prefix(void) {
|
||||
ASSERT(match_prefix("*", 1, "/hello/") == 0);
|
||||
ASSERT(match_prefix("**.a$|**.b$", 11, "/a/b.b/") == -1);
|
||||
ASSERT(match_prefix("**.a$|**.b$", 11, "/a/b.b") == 6);
|
||||
ASSERT(match_prefix("**.a$|**.b$", 11, "/a/b.a") == 6);
|
||||
ASSERT(match_prefix("**.a$|**.b$", 11, "/a/B.A") == 6);
|
||||
ASSERT(match_prefix("**o$", 4, "HELLO") == 5);
|
||||
}
|
||||
|
||||
static void test_remove_double_dots() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user