From: Russ Combs Date: Wed, 5 Nov 2014 20:04:04 +0000 (-0500) Subject: prelim support for /* comments */ in text rules X-Git-Tag: 3.0.0-233~1266 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5abaffcb43e73d58890bb423a8942e83b9090e10;p=thirdparty%2Fsnort3.git prelim support for /* comments */ in text rules --- diff --git a/ChangeLog b/ChangeLog index 0ec3913da..fdee32294 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,6 +29,7 @@ -- fixed boyer-moore init -- removed content extract var cruft -- latest from Josh +-- initial /* comments */ for text rules (needs to ignore \") 126 -- pulled latest from tom diff --git a/src/parser/parse_stream.cc b/src/parser/parse_stream.cc index 5fd3522eb..2e4f33315 100644 --- a/src/parser/parse_stream.cc +++ b/src/parser/parse_stream.cc @@ -111,6 +111,11 @@ static TokenType get_token( comments++; state = 1; } + else if ( c == '/' ) + { + s = c; + state = 10; + } else if ( c == '[' ) { s += c; @@ -234,6 +239,52 @@ static TokenType get_token( s += c; state = 6; break; + case 10: // start of comment? + if ( c == '*' ) + { + s.clear(); + state = 11; + break; + } + keys++; + // now as if state == 6 + if ( esc && c == '\\' ) + { + state = 9; + } + else if ( isspace(c) || strchr(punct, c) ) + { + prev = c; + return TT_LITERAL; + } + else + { + s += c; + state = 6; + } + break; + case 11: // /* comment */ + if ( c == '*' ) + state = 12; + else if ( c == '"' ) + state = 13; + break; + case 12: // end of comment? + if ( c == '/' ) + { + comments++; + state = 0; + } + break; + case 13: // quoted string in comment + if ( c == '"' ) + state = 11; + else if ( c == '\n' ) + { + ParseWarning("line break in commented string on line %d\n", lines-1); + state = 11; + } + break; } c = is.get(); chars++; diff --git a/src/service_inspectors/http_inspect/hi_module.cc b/src/service_inspectors/http_inspect/hi_module.cc index eb70bb79a..d9fa6f1e8 100644 --- a/src/service_inspectors/http_inspect/hi_module.cc +++ b/src/service_inspectors/http_inspect/hi_module.cc @@ -284,6 +284,7 @@ static const Parameter hi_server_params[] = { "chunk_length", Parameter::PT_INT, "1:", "500000", "alert on chunk lengths greater than specified" }, + // FIXIT-M this is backwards: 0 should mean nothing; -1 all { "client_flow_depth", Parameter::PT_INT, "-1:1460", "0", "raw request payload to inspect" },