/* prototypes */
int SigGroupHeadClearSigs(SigGroupHead *);
-static uint32_t detect_siggroup_head_memory = 0;
-static uint32_t detect_siggroup_head_init_cnt = 0;
-static uint32_t detect_siggroup_head_free_cnt = 0;
-static uint32_t detect_siggroup_head_initdata_memory = 0;
-static uint32_t detect_siggroup_head_initdata_init_cnt = 0;
-static uint32_t detect_siggroup_head_initdata_free_cnt = 0;
-static uint32_t detect_siggroup_sigarray_memory = 0;
-static uint32_t detect_siggroup_sigarray_init_cnt = 0;
-static uint32_t detect_siggroup_sigarray_free_cnt = 0;
-static uint32_t detect_siggroup_matcharray_memory = 0;
-static uint32_t detect_siggroup_matcharray_init_cnt = 0;
-static uint32_t detect_siggroup_matcharray_free_cnt = 0;
-
void SigGroupHeadInitDataFree(SigGroupHeadInitData *sghid)
{
if (sghid->sig_array != NULL) {
SCFree(sghid->sig_array);
sghid->sig_array = NULL;
-
- detect_siggroup_sigarray_free_cnt++;
- detect_siggroup_sigarray_memory -= sghid->sig_size;
}
SCFree(sghid);
-
- detect_siggroup_head_initdata_free_cnt++;
- detect_siggroup_head_initdata_memory -= sizeof(SigGroupHeadInitData);
}
static SigGroupHeadInitData *SigGroupHeadInitDataAlloc(uint32_t size)
memset(sghid, 0x00, sizeof(SigGroupHeadInitData));
- detect_siggroup_head_initdata_init_cnt++;
- detect_siggroup_head_initdata_memory += sizeof(SigGroupHeadInitData);
-
/* initialize the signature bitarray */
sghid->sig_size = size;
if ( (sghid->sig_array = SCMalloc(sghid->sig_size)) == NULL)
memset(sghid->sig_array, 0, sghid->sig_size);
- detect_siggroup_sigarray_init_cnt++;
- detect_siggroup_sigarray_memory += sghid->sig_size;
-
return sghid;
error:
SigGroupHeadInitDataFree(sghid);
if (sgh->init == NULL)
goto error;
- detect_siggroup_head_init_cnt++;
- detect_siggroup_head_memory += sizeof(SigGroupHead);
-
return sgh;
error:
SCLogDebug("sgh %p", sgh);
if (sgh->match_array != NULL) {
- detect_siggroup_matcharray_free_cnt++;
- detect_siggroup_matcharray_memory -= (sgh->sig_cnt * sizeof(Signature *));
SCFree(sgh->match_array);
sgh->match_array = NULL;
}
SCFree(sgh);
- detect_siggroup_head_free_cnt++;
- detect_siggroup_head_memory -= sizeof(SigGroupHead);
-
return;
}
}
}
-/**
- * \brief Prints the memory statistics for the detect-engine-siggroup.[ch] module.
- */
-void DetectSigGroupPrintMemory(void)
-{
- SCLogDebug(" * Sig group head memory stats (SigGroupHead %" PRIuMAX "):",
- (uintmax_t)sizeof(SigGroupHead));
- SCLogDebug(" - detect_siggroup_head_memory %" PRIu32,
- detect_siggroup_head_memory);
- SCLogDebug(" - detect_siggroup_head_init_cnt %" PRIu32,
- detect_siggroup_head_init_cnt);
- SCLogDebug(" - detect_siggroup_head_free_cnt %" PRIu32,
- detect_siggroup_head_free_cnt);
- SCLogDebug(" - outstanding sig group heads %" PRIu32,
- detect_siggroup_head_init_cnt - detect_siggroup_head_free_cnt);
- SCLogDebug(" * Sig group head memory stats done");
- SCLogDebug(" * Sig group head initdata memory stats (SigGroupHeadInitData %" PRIuMAX "):",
- (uintmax_t)sizeof(SigGroupHeadInitData));
- SCLogDebug(" - detect_siggroup_head_initdata_memory %" PRIu32,
- detect_siggroup_head_initdata_memory);
- SCLogDebug(" - detect_siggroup_head_initdata_init_cnt %" PRIu32,
- detect_siggroup_head_initdata_init_cnt);
- SCLogDebug(" - detect_siggroup_head_initdata_free_cnt %" PRIu32,
- detect_siggroup_head_initdata_free_cnt);
- SCLogDebug(" - outstanding sig group head initdatas %" PRIu32,
- detect_siggroup_head_initdata_init_cnt - detect_siggroup_head_initdata_free_cnt);
- SCLogDebug(" * Sig group head memory initdata stats done");
- SCLogDebug(" * Sig group sigarray memory stats:");
- SCLogDebug(" - detect_siggroup_sigarray_memory %" PRIu32,
- detect_siggroup_sigarray_memory);
- SCLogDebug(" - detect_siggroup_sigarray_init_cnt %" PRIu32,
- detect_siggroup_sigarray_init_cnt);
- SCLogDebug(" - detect_siggroup_sigarray_free_cnt %" PRIu32,
- detect_siggroup_sigarray_free_cnt);
- SCLogDebug(" - outstanding sig group sigarrays %" PRIu32,
- (detect_siggroup_sigarray_init_cnt -
- detect_siggroup_sigarray_free_cnt));
- SCLogDebug(" * Sig group sigarray memory stats done");
- SCLogDebug(" * Sig group matcharray memory stats:");
- SCLogDebug(" - detect_siggroup_matcharray_memory %" PRIu32,
- detect_siggroup_matcharray_memory);
- SCLogDebug(" - detect_siggroup_matcharray_init_cnt %" PRIu32,
- detect_siggroup_matcharray_init_cnt);
- SCLogDebug(" - detect_siggroup_matcharray_free_cnt %" PRIu32,
- detect_siggroup_matcharray_free_cnt);
- SCLogDebug(" - outstanding sig group matcharrays %" PRIu32,
- (detect_siggroup_matcharray_init_cnt -
- detect_siggroup_matcharray_free_cnt));
- SCLogDebug(" * Sig group sigarray memory stats done");
- SCLogDebug(" X Total %" PRIu32,
- (detect_siggroup_head_memory + detect_siggroup_sigarray_memory +
- detect_siggroup_matcharray_memory));
-
- return;
-}
-
/**
* \brief Helper function used to print the list of sids for the Signatures
* present in this SigGroupHead.
memset(sgh->match_array,0, sgh->sig_cnt * sizeof(Signature *));
- detect_siggroup_matcharray_init_cnt++;
- detect_siggroup_matcharray_memory += (sgh->sig_cnt * sizeof(Signature *));
-
for (sig = 0; sig < max_idx + 1; sig++) {
if (!(sgh->init->sig_array[(sig / 8)] & (1 << (sig % 8))) )
continue;
uint32_t cnt_deonly = 0;
//DetectAddressPrintMemory();
- //DetectSigGroupPrintMemory();
//DetectPortPrintMemory();
if (!(de_ctx->flags & DE_QUIET)) {
}
//DetectAddressPrintMemory();
- //DetectSigGroupPrintMemory();
//DetectPortPrintMemory();
if (!(de_ctx->flags & DE_QUIET)) {
DetectMpmPrepareAppMpms(de_ctx);
// DetectAddressPrintMemory();
-// DetectSigGroupPrintMemory();
// DetectPortPrintMemory();
if (SigMatchPrepare(de_ctx) != 0) {
DetectEngineThreadCtxInit(&th_v, (void *)de_ctx, (void *)&det_ctx);
printf("@pre cleanup\n\n");
- DetectSigGroupPrintMemory();
DetectAddressPrintMemory();
DetectPortPrintMemory();
DetectEngineCtxFree(de_ctx);
printf("@exit\n\n");
- DetectSigGroupPrintMemory();
DetectAddressPrintMemory();
DetectPortPrintMemory();
DetectEngineCtxFree(de_ctx);
printf("@exit\n\n");
- DetectSigGroupPrintMemory();
DetectAddressPrintMemory();
DetectPortPrintMemory();
printf("@exit\n\n");
- DetectSigGroupPrintMemory();
DetectAddressPrintMemory();
DetectPortPrintMemory();
DetectEngineCtxFree(de_ctx);
printf("@exit\n\n");
- DetectSigGroupPrintMemory();
DetectAddressPrintMemory();
DetectPortPrintMemory();