detect/krb5.cname: update buffer initialization logic

pull/8482/head
Victor Julien 2 years ago
parent 849f1cf1b8
commit d3675d5197

@ -56,9 +56,8 @@ static int DetectKrb5CNameSetup(DetectEngineCtx *de_ctx, Signature *s, const cha
} }
static InspectionBuffer *GetKrb5CNameData(DetectEngineThreadCtx *det_ctx, static InspectionBuffer *GetKrb5CNameData(DetectEngineThreadCtx *det_ctx,
const DetectEngineTransforms *transforms, const DetectEngineTransforms *transforms, Flow *_f,
Flow *_f, const struct Krb5PrincipalNameDataArgs *cbdata, const struct Krb5PrincipalNameDataArgs *cbdata, int list_id)
int list_id, bool first)
{ {
SCEnter(); SCEnter();
@ -66,7 +65,7 @@ static InspectionBuffer *GetKrb5CNameData(DetectEngineThreadCtx *det_ctx,
InspectionBufferMultipleForListGet(det_ctx, list_id, cbdata->local_id); InspectionBufferMultipleForListGet(det_ctx, list_id, cbdata->local_id);
if (buffer == NULL) if (buffer == NULL)
return NULL; return NULL;
if (!first && buffer->inspect != NULL) if (buffer->initialized)
return buffer; return buffer;
uint32_t b_len = 0; uint32_t b_len = 0;
@ -95,8 +94,8 @@ static uint8_t DetectEngineInspectKrb5CName(DetectEngineCtx *de_ctx, DetectEngin
while (1) { while (1) {
struct Krb5PrincipalNameDataArgs cbdata = { local_id, txv, }; struct Krb5PrincipalNameDataArgs cbdata = { local_id, txv, };
InspectionBuffer *buffer = GetKrb5CNameData(det_ctx, InspectionBuffer *buffer =
transforms, f, &cbdata, engine->sm_list, false); GetKrb5CNameData(det_ctx, transforms, f, &cbdata, engine->sm_list);
if (buffer == NULL || buffer->inspect == NULL) if (buffer == NULL || buffer->inspect == NULL)
break; break;
@ -149,8 +148,7 @@ static void PrefilterTxKrb5CName(DetectEngineThreadCtx *det_ctx, const void *pec
// loop until we get a NULL // loop until we get a NULL
struct Krb5PrincipalNameDataArgs cbdata = { local_id, txv }; struct Krb5PrincipalNameDataArgs cbdata = { local_id, txv };
InspectionBuffer *buffer = GetKrb5CNameData(det_ctx, ctx->transforms, InspectionBuffer *buffer = GetKrb5CNameData(det_ctx, ctx->transforms, f, &cbdata, list_id);
f, &cbdata, list_id, true);
if (buffer == NULL) if (buffer == NULL)
break; break;

Loading…
Cancel
Save