From: Victor Julien Date: Thu, 31 Mar 2016 08:07:01 +0000 (+0200) Subject: hyperscan: fix minor coverity warning 1358023 X-Git-Tag: suricata-3.0.1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba035e601e6f5d56a9ce2c5bbb4bb2c2c80d2eca;p=thirdparty%2Fsuricata.git hyperscan: fix minor coverity warning 1358023 *** CID 1358023: Null pointer dereferences (REVERSE_INULL) /src/util-mpm-hs.c: 860 in SCHSDestroyThreadCtx() 854 if (thr_ctx->scratch != NULL) { 855 hs_free_scratch(thr_ctx->scratch); 856 mpm_thread_ctx->memory_cnt--; 857 mpm_thread_ctx->memory_size -= thr_ctx->scratch_size; 858 } 859 >>> CID 1358023: Null pointer dereferences (REVERSE_INULL) >>> Null-checking "mpm_thread_ctx->ctx" suggests that it may be null, but it has already been dereferenced on all paths leading to the check. 860 if (mpm_thread_ctx->ctx != NULL) { 861 SCFree(mpm_thread_ctx->ctx); 862 mpm_thread_ctx->ctx = NULL; 863 mpm_thread_ctx->memory_cnt--; 864 mpm_thread_ctx->memory_size -= sizeof(SCHSThreadCtx); 865 } --- diff --git a/src/util-mpm-hs.c b/src/util-mpm-hs.c index be4a93d0cd..c9c92db664 100644 --- a/src/util-mpm-hs.c +++ b/src/util-mpm-hs.c @@ -849,15 +849,15 @@ void SCHSDestroyThreadCtx(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx) { SCHSPrintSearchStats(mpm_thread_ctx); - SCHSThreadCtx *thr_ctx = (SCHSThreadCtx *)mpm_thread_ctx->ctx; + if (mpm_thread_ctx->ctx != NULL) { + SCHSThreadCtx *thr_ctx = (SCHSThreadCtx *)mpm_thread_ctx->ctx; - if (thr_ctx->scratch != NULL) { - hs_free_scratch(thr_ctx->scratch); - mpm_thread_ctx->memory_cnt--; - mpm_thread_ctx->memory_size -= thr_ctx->scratch_size; - } + if (thr_ctx->scratch != NULL) { + hs_free_scratch(thr_ctx->scratch); + mpm_thread_ctx->memory_cnt--; + mpm_thread_ctx->memory_size -= thr_ctx->scratch_size; + } - if (mpm_thread_ctx->ctx != NULL) { SCFree(mpm_thread_ctx->ctx); mpm_thread_ctx->ctx = NULL; mpm_thread_ctx->memory_cnt--;