From: Victor Julien Date: Mon, 11 Sep 2023 07:22:16 +0000 (+0000) Subject: app-layer: optimize pstate check X-Git-Tag: suricata-8.0.0-beta1~375 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1000b0cf33fab6a145f9af8941d162c91ba41992;p=thirdparty%2Fsuricata.git 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. --- 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)