|
|
|
|
@ -301,7 +301,7 @@ static int DetectByteMathSetup(DetectEngineCtx *de_ctx, Signature *s, const char
|
|
|
|
|
sm_list = s->init_data->list;
|
|
|
|
|
|
|
|
|
|
if (data->flags & DETECT_BYTEMATH_FLAG_RELATIVE) {
|
|
|
|
|
prev_pm = DetectGetLastSMFromLists(s, DETECT_CONTENT, DETECT_PCRE, -1);
|
|
|
|
|
prev_pm = SCDetectGetLastSMFromLists(s, DETECT_CONTENT, DETECT_PCRE, -1);
|
|
|
|
|
if (!prev_pm) {
|
|
|
|
|
SCLogError("relative specified without "
|
|
|
|
|
"previous pattern match");
|
|
|
|
|
@ -310,11 +310,8 @@ static int DetectByteMathSetup(DetectEngineCtx *de_ctx, Signature *s, const char
|
|
|
|
|
}
|
|
|
|
|
} else if (data->endian == EndianDCE) {
|
|
|
|
|
if (data->flags & DETECT_BYTEMATH_FLAG_RELATIVE) {
|
|
|
|
|
prev_pm = DetectGetLastSMFromLists(s, DETECT_CONTENT, DETECT_PCRE,
|
|
|
|
|
DETECT_BYTETEST, DETECT_BYTEJUMP,
|
|
|
|
|
DETECT_BYTE_EXTRACT,
|
|
|
|
|
DETECT_BYTEMATH,
|
|
|
|
|
DETECT_ISDATAAT, -1);
|
|
|
|
|
prev_pm = SCDetectGetLastSMFromLists(s, DETECT_CONTENT, DETECT_PCRE, DETECT_BYTETEST,
|
|
|
|
|
DETECT_BYTEJUMP, DETECT_BYTE_EXTRACT, DETECT_BYTEMATH, DETECT_ISDATAAT, -1);
|
|
|
|
|
if (prev_pm == NULL) {
|
|
|
|
|
sm_list = DETECT_SM_LIST_PMATCH;
|
|
|
|
|
} else {
|
|
|
|
|
@ -330,10 +327,8 @@ static int DetectByteMathSetup(DetectEngineCtx *de_ctx, Signature *s, const char
|
|
|
|
|
goto error;
|
|
|
|
|
|
|
|
|
|
} else if (data->flags & DETECT_BYTEMATH_FLAG_RELATIVE) {
|
|
|
|
|
prev_pm = DetectGetLastSMFromLists(s, DETECT_CONTENT, DETECT_PCRE,
|
|
|
|
|
DETECT_BYTETEST, DETECT_BYTEJUMP,
|
|
|
|
|
DETECT_BYTE_EXTRACT, DETECT_BYTEMATH,
|
|
|
|
|
DETECT_ISDATAAT, -1);
|
|
|
|
|
prev_pm = SCDetectGetLastSMFromLists(s, DETECT_CONTENT, DETECT_PCRE, DETECT_BYTETEST,
|
|
|
|
|
DETECT_BYTEJUMP, DETECT_BYTE_EXTRACT, DETECT_BYTEMATH, DETECT_ISDATAAT, -1);
|
|
|
|
|
if (prev_pm == NULL) {
|
|
|
|
|
sm_list = DETECT_SM_LIST_PMATCH;
|
|
|
|
|
} else {
|
|
|
|
|
|