aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/snort-config.c
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2017-04-14 22:37:10 +0100
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2017-04-16 08:59:32 +0000
commitcb1967a98209abf2c37c6e4504c6d27e65614de0 (patch)
tree7deec43137774f2a3467764ae7e00df69eb0e433 /epan/dissectors/snort-config.c
parent581db4c2b82601a93023fb3ce214b4171d7e14d9 (diff)
Snort: map more pcre modifiers to GRegexCompileFlags
Change-Id: I5df8cb794b7b76b708448ae4b74b7481bdd8faff Reviewed-on: https://code.wireshark.org/review/21097 Petri-Dish: Martin Mathieson <martin.r.mathieson@googlemail.com> Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com>
Diffstat (limited to 'epan/dissectors/snort-config.c')
-rw-r--r--epan/dissectors/snort-config.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/epan/dissectors/snort-config.c b/epan/dissectors/snort-config.c
index 7e7955f3ee..ccf4126559 100644
--- a/epan/dissectors/snort-config.c
+++ b/epan/dissectors/snort-config.c
@@ -1141,12 +1141,28 @@ gboolean content_convert_pcre_for_regex(content_t *content)
break;
}
else {
- if (content->str[i] == 'i') {
- content->pcre_case_insensitive = TRUE;
+ switch (content->str[i]) {
+ case 'i':
+ content->pcre_case_insensitive = TRUE;
+ break;
+ case 's':
+ content->pcre_dot_includes_newline = TRUE;
+ break;
+ case 'B':
+ content->pcre_raw = TRUE;
+ break;
+ case 'm':
+ content->pcre_multiline = TRUE;
+ break;
+
+ default:
+ /* TODO: handle other modifiers that will get seen? */
+ /* N.B. 'U' (match in decoded URI buffers) can't be handled, so don't store in flag. */
+ /* N.B. not sure if/how to handle 'R' (effectively distance:0) */
+ snort_debug_printf("Unhandled pcre modifier '%c'\n", content->str[i]);
+ break;
}
- /* TODO: note/handle other common modifiers (s/m/?) */
}
-
}
if (end_delimiter_offset == 0) {
/* Didn't find it */