break;
case 'B': /* snort's option */
+ if (pd->flags & DETECT_PCRE_URI) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'B' inconsistent with 'U'");
+ goto error;
+ }
+ if (pd->flags & DETECT_PCRE_HEADER) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'B' inconsistent with 'H'");
+ goto error;
+ }
+ if (pd->flags & DETECT_PCRE_COOKIE) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'B' inconsistent with 'C'");
+ goto error;
+ }
+ if (pd->flags & DETECT_PCRE_METHOD) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'B' inconsistent with 'M'");
+ goto error;
+ }
pd->flags |= DETECT_PCRE_RAWBYTES;
break;
case 'R': /* snort's option */
break;
case 'U': /* snort's option */
if (pd->flags & DETECT_PCRE_HTTP_RAW_URI) {
- SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier '%c' inconsistent with 'U'", *op);
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'U' inconsistent with 'I'");
goto error;
}
pd->flags |= DETECT_PCRE_URI;
break;
case 'H': /* snort's option */
if (pd->flags & DETECT_PCRE_RAW_HEADER) {
- SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier '%c' inconsistent with 'H'", *op);
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'H' inconsistent with 'D'");
+ goto error;
+ }
+ if (pd->flags & DETECT_PCRE_RAWBYTES) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'H' inconsistent with 'B'");
goto error;
}
pd->flags |= DETECT_PCRE_HEADER;
break;
case 'I': /* snort's option */
if (pd->flags & DETECT_PCRE_URI) {
- SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier '%c' inconsistent with 'I'", *op);
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'I' inconsistent with 'U'");
+ goto error;
+ }
+ if (pd->flags & DETECT_PCRE_RAWBYTES) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'I' inconsistent with 'B'");
goto error;
}
pd->flags |= DETECT_PCRE_HTTP_RAW_URI;
break;
case 'D': /* snort's option */
if (pd->flags & DETECT_PCRE_HEADER) {
- SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier '%c' inconsistent with 'D'", *op);
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'D' inconsistent with 'H'");
goto error;
}
pd->flags |= DETECT_PCRE_RAW_HEADER;
break;
case 'M': /* snort's option */
+ if (pd->flags & DETECT_PCRE_RAWBYTES) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'M' inconsistent with 'B'");
+ goto error;
+ }
pd->flags |= DETECT_PCRE_METHOD;
break;
case 'C': /* snort's option */
+ if (pd->flags & DETECT_PCRE_RAWBYTES) {
+ SCLogError(SC_ERR_INVALID_SIGNATURE, "regex modifier 'C' inconsistent with 'B'");
+ goto error;
+ }
pd->flags |= DETECT_PCRE_COOKIE;
break;
case 'O':