int32_t parsed = 0;
if (sstate->andx.paddingparsed) {
- parsed = DCERPCParser(&sstate->dcerpc, input, input_len);
+ parsed = DCERPCParser(&sstate->ds.dcerpc, input, input_len);
if (parsed == -1 || parsed > sstate->bytecount.bytecountleft || parsed > (int32_t)input_len) {
SCReturnInt(-1);
} else {
SCReturnPtr(NULL, "void");
}
- DCERPCInit(&s->dcerpc);
+ DCERPCInit(&s->ds.dcerpc);
SCReturnPtr(s, "void");
}
SCEnter();
SMBState *sstate = (SMBState *) s;
- DCERPCCleanup(&sstate->dcerpc);
+ DCERPCCleanup(&sstate->ds.dcerpc);
SCFree(s);
SCReturn;
goto end;
}
- printUUID("BIND", smb_state->dcerpc.dcerpcbindbindack.uuid_entry);
+ printUUID("BIND", smb_state->ds.dcerpc.dcerpcbindbindack.uuid_entry);
result = 1;
end:
if (alp_tctx != NULL)
goto end;
}
FLOWLOCK_UNLOCK(&f);
- printUUID("BIND", smb_state->dcerpc.dcerpcbindbindack.uuid_entry);
+ printUUID("BIND", smb_state->ds.dcerpc.dcerpcbindbindack.uuid_entry);
result = 1;
end:
if (alp_tctx != NULL)
}
KEYWORD_PROFILING_SET_LIST(det_ctx, DETECT_SM_LIST_DMATCH);
- if (alproto == ALPROTO_SMB || alproto == ALPROTO_SMB2) {
- SMBState *smb_state = (SMBState *)alstate;
- if (smb_state->dcerpc_present &&
- DetectEngineInspectDcePayload(de_ctx, det_ctx, s, f,
- flags, &smb_state->dcerpc) == 1) {
- inspect_flags |= DE_STATE_FLAG_DCE_PAYLOAD_INSPECT;
- dmatch = 1;
- }
- } else {
- if (DetectEngineInspectDcePayload(de_ctx, det_ctx, s, f,
- flags, alstate) == 1) {
- inspect_flags |= DE_STATE_FLAG_DCE_PAYLOAD_INSPECT;
- dmatch = 1;
- }
+ if (DetectEngineInspectDcePayload(de_ctx, det_ctx, s, f,
+ flags, alstate) == 1) {
+ inspect_flags |= DE_STATE_FLAG_DCE_PAYLOAD_INSPECT;
+ dmatch = 1;
}
}
while (1) {
if (sigmatch_table[smd->type].AppLayerMatch != NULL) {
int match = 0;
- if (alproto == ALPROTO_SMB || alproto == ALPROTO_SMB2) {
- SMBState *smb_state = (SMBState *)alstate;
- if (smb_state->dcerpc_present) {
- KEYWORD_PROFILING_START;
- match = sigmatch_table[smd->type].
- AppLayerMatch(tv, det_ctx, f, flags, &smb_state->dcerpc, s, smd);
- KEYWORD_PROFILING_END(det_ctx, smd->type, (match == 1));
- }
- } else {
- KEYWORD_PROFILING_START;
- match = sigmatch_table[smd->type].
- AppLayerMatch(tv, det_ctx, f, flags, alstate, s, smd);
- KEYWORD_PROFILING_END(det_ctx, smd->type, (match == 1));
- }
+ KEYWORD_PROFILING_START;
+ match = sigmatch_table[smd->type].
+ AppLayerMatch(tv, det_ctx, f, flags, alstate, s, smd);
+ KEYWORD_PROFILING_END(det_ctx, smd->type, (match == 1));
if (match == 0) {
break;
while(1) {
if (sigmatch_table[smd->type].AppLayerMatch != NULL) {
int match = 0;
- if (alproto == ALPROTO_SMB || alproto == ALPROTO_SMB2) {
- SMBState *smb_state = (SMBState *)alstate;
- if (smb_state->dcerpc_present) {
- KEYWORD_PROFILING_START;
- match = sigmatch_table[smd->type].
- AppLayerMatch(tv, det_ctx, f, flags, &smb_state->dcerpc, s, smd);
- KEYWORD_PROFILING_END(det_ctx, smd->type, (match == 1));
- }
- } else {
- KEYWORD_PROFILING_START;
- match = sigmatch_table[smd->type].
- AppLayerMatch(tv, det_ctx, f, flags, alstate, s, smd);
- KEYWORD_PROFILING_END(det_ctx, smd->type, (match == 1));
- }
+ KEYWORD_PROFILING_START;
+ match = sigmatch_table[smd->type].
+ AppLayerMatch(tv, det_ctx, f, flags, alstate, s, smd);
+ KEYWORD_PROFILING_END(det_ctx, smd->type, (match == 1));
if (match == 0)
break;
void *alstate = FlowGetAppState(f);
if (alstate != NULL) {
KEYWORD_PROFILING_SET_LIST(det_ctx, DETECT_SM_LIST_DMATCH);
- if (alproto == ALPROTO_SMB || alproto == ALPROTO_SMB2) {
- SMBState *smb_state = (SMBState *)alstate;
- if (smb_state->dcerpc_present &&
- DetectEngineInspectDcePayload(de_ctx, det_ctx, s, f,
- flags, &smb_state->dcerpc) == 1)
- {
- total_matches++;
- inspect_flags |= DE_STATE_FLAG_DCE_PAYLOAD_INSPECT;
- }
- } else {
- if (DetectEngineInspectDcePayload(de_ctx, det_ctx, s, f,
- flags, alstate) == 1)
- {
- total_matches++;
- inspect_flags |= DE_STATE_FLAG_DCE_PAYLOAD_INSPECT;
- }
+ if (DetectEngineInspectDcePayload(de_ctx, det_ctx, s, f,
+ flags, alstate) == 1)
+ {
+ total_matches++;
+ inspect_flags |= DE_STATE_FLAG_DCE_PAYLOAD_INSPECT;
}
}
}