From 6f1574276f77fc4d2cb795cfc87d85b6ce736a19 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Sat, 28 Jan 2023 11:30:22 +0100 Subject: [PATCH] detect/mqtt: update buffer initialization logic --- src/detect-mqtt-subscribe-topic.c | 14 +++++++------- src/detect-mqtt-unsubscribe-topic.c | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/detect-mqtt-subscribe-topic.c b/src/detect-mqtt-subscribe-topic.c index 71e359375a..62b2018a3d 100644 --- a/src/detect-mqtt-subscribe-topic.c +++ b/src/detect-mqtt-subscribe-topic.c @@ -65,8 +65,8 @@ struct MQTTSubscribeTopicGetDataArgs { }; static InspectionBuffer *MQTTSubscribeTopicGetData(DetectEngineThreadCtx *det_ctx, - const DetectEngineTransforms *transforms, - Flow *f, struct MQTTSubscribeTopicGetDataArgs *cbdata, int list_id, bool first) + const DetectEngineTransforms *transforms, Flow *f, + struct MQTTSubscribeTopicGetDataArgs *cbdata, int list_id) { SCEnter(); @@ -74,7 +74,7 @@ static InspectionBuffer *MQTTSubscribeTopicGetData(DetectEngineThreadCtx *det_ct InspectionBufferMultipleForListGet(det_ctx, list_id, cbdata->local_id); if (buffer == NULL) return NULL; - if (!first && buffer->inspect != NULL) + if (buffer->initialized) return buffer; const uint8_t *data; @@ -101,8 +101,8 @@ static uint8_t DetectEngineInspectMQTTSubscribeTopic(DetectEngineCtx *de_ctx, while ((subscribe_topic_match_limit == 0) || local_id < subscribe_topic_match_limit) { struct MQTTSubscribeTopicGetDataArgs cbdata = { local_id, txv, }; - InspectionBuffer *buffer = MQTTSubscribeTopicGetData(det_ctx, - transforms, f, &cbdata, engine->sm_list, false); + InspectionBuffer *buffer = + MQTTSubscribeTopicGetData(det_ctx, transforms, f, &cbdata, engine->sm_list); if (buffer == NULL || buffer->inspect == NULL) break; @@ -151,8 +151,8 @@ static void PrefilterTxMQTTSubscribeTopic(DetectEngineThreadCtx *det_ctx, const uint32_t local_id = 0; while ((subscribe_topic_match_limit == 0) || local_id < subscribe_topic_match_limit) { struct MQTTSubscribeTopicGetDataArgs cbdata = { local_id, txv }; - InspectionBuffer *buffer = MQTTSubscribeTopicGetData(det_ctx, ctx->transforms, - f, &cbdata, list_id, true); + InspectionBuffer *buffer = + MQTTSubscribeTopicGetData(det_ctx, ctx->transforms, f, &cbdata, list_id); if (buffer == NULL) break; diff --git a/src/detect-mqtt-unsubscribe-topic.c b/src/detect-mqtt-unsubscribe-topic.c index b7f884c08e..70ba5af857 100644 --- a/src/detect-mqtt-unsubscribe-topic.c +++ b/src/detect-mqtt-unsubscribe-topic.c @@ -65,8 +65,8 @@ struct MQTTUnsubscribeTopicGetDataArgs { }; static InspectionBuffer *MQTTUnsubscribeTopicGetData(DetectEngineThreadCtx *det_ctx, - const DetectEngineTransforms *transforms, - Flow *f, struct MQTTUnsubscribeTopicGetDataArgs *cbdata, int list_id, bool first) + const DetectEngineTransforms *transforms, Flow *f, + struct MQTTUnsubscribeTopicGetDataArgs *cbdata, int list_id) { SCEnter(); @@ -74,7 +74,7 @@ static InspectionBuffer *MQTTUnsubscribeTopicGetData(DetectEngineThreadCtx *det_ InspectionBufferMultipleForListGet(det_ctx, list_id, cbdata->local_id); if (buffer == NULL) return NULL; - if (!first && buffer->inspect != NULL) + if (buffer->initialized) return buffer; const uint8_t *data; @@ -101,8 +101,8 @@ static uint8_t DetectEngineInspectMQTTUnsubscribeTopic(DetectEngineCtx *de_ctx, while ((unsubscribe_topic_match_limit == 0) || local_id < unsubscribe_topic_match_limit) { struct MQTTUnsubscribeTopicGetDataArgs cbdata = { local_id, txv, }; - InspectionBuffer *buffer = MQTTUnsubscribeTopicGetData(det_ctx, - transforms, f, &cbdata, engine->sm_list, false); + InspectionBuffer *buffer = + MQTTUnsubscribeTopicGetData(det_ctx, transforms, f, &cbdata, engine->sm_list); if (buffer == NULL || buffer->inspect == NULL) break; @@ -151,8 +151,8 @@ static void PrefilterTxMQTTUnsubscribeTopic(DetectEngineThreadCtx *det_ctx, cons uint32_t local_id = 0; while ((unsubscribe_topic_match_limit == 0) || local_id < unsubscribe_topic_match_limit) { struct MQTTUnsubscribeTopicGetDataArgs cbdata = { local_id, txv }; - InspectionBuffer *buffer = MQTTUnsubscribeTopicGetData(det_ctx, ctx->transforms, - f, &cbdata, list_id, true); + InspectionBuffer *buffer = + MQTTUnsubscribeTopicGetData(det_ctx, ctx->transforms, f, &cbdata, list_id); if (buffer == NULL) break;