From 1000b0cf33fab6a145f9af8941d162c91ba41992 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 11 Sep 2023 07:22:16 +0000 Subject: [PATCH] app-layer: optimize pstate check To assist branch prediction, which showed a 100% miss rate, assume pstate is non-NULL. Code review suggests all paths leading to the function actually check pstate first, or alstate which can only be non-NULL if pstate was first initialized. For now add a debug check. --- src/app-layer-parser.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app-layer-parser.c b/src/app-layer-parser.c index 4d0dbcc48a..6a8f66c5a0 100644 --- a/src/app-layer-parser.c +++ b/src/app-layer-parser.c @@ -698,10 +698,11 @@ uint64_t AppLayerParserGetTransactionInspectId(AppLayerParserState *pstate, uint { SCEnter(); - if (pstate == NULL) - SCReturnCT(0ULL, "uint64_t"); + if (pstate != NULL) + SCReturnCT(pstate->inspect_id[(direction & STREAM_TOSERVER) ? 0 : 1], "uint64_t"); - SCReturnCT(pstate->inspect_id[(direction & STREAM_TOSERVER) ? 0 : 1], "uint64_t"); + DEBUG_VALIDATE_BUG_ON(1); + SCReturnCT(0ULL, "uint64_t"); } inline uint64_t AppLayerParserGetTxDetectFlags(AppLayerTxData *txd, const uint8_t dir)