*** 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 }
{
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--;