SCProfilePacketData packet_profile_tmm_data4[TMM_SIZE][257];
SCProfilePacketData packet_profile_tmm_data6[TMM_SIZE][257];
-SCProfilePacketData packet_profile_app_data4[ALPROTO_MAX][257];
-SCProfilePacketData packet_profile_app_data6[ALPROTO_MAX][257];
+SCProfilePacketData *packet_profile_app_data4;
+SCProfilePacketData *packet_profile_app_data6;
SCProfilePacketData packet_profile_app_pd_data4[257];
SCProfilePacketData packet_profile_app_pd_data6[257];
memset(&packet_profile_data6, 0, sizeof(packet_profile_data6));
memset(&packet_profile_tmm_data4, 0, sizeof(packet_profile_tmm_data4));
memset(&packet_profile_tmm_data6, 0, sizeof(packet_profile_tmm_data6));
- memset(&packet_profile_app_data4, 0, sizeof(packet_profile_app_data4));
- memset(&packet_profile_app_data6, 0, sizeof(packet_profile_app_data6));
+ packet_profile_app_data4 = SCCalloc(ALPROTO_MAX * 257, sizeof(SCProfilePacketData));
+ if (packet_profile_app_data4 == NULL) {
+ FatalError("Failed to allocate packet_profile_app_data4");
+ }
+ packet_profile_app_data6 = SCCalloc(ALPROTO_MAX * 257, sizeof(SCProfilePacketData));
+ if (packet_profile_app_data6 == NULL) {
+ FatalError("Failed to allocate packet_profile_app_data6");
+ }
memset(&packet_profile_app_pd_data4, 0, sizeof(packet_profile_app_pd_data4));
memset(&packet_profile_app_pd_data6, 0, sizeof(packet_profile_app_pd_data6));
memset(&packet_profile_detect_data4, 0, sizeof(packet_profile_detect_data4));
void
SCProfilingDestroy(void)
{
+ if (packet_profile_app_data4) {
+ SCFree(packet_profile_app_data4);
+ packet_profile_app_data4 = NULL;
+ }
+ if (packet_profile_app_data6) {
+ SCFree(packet_profile_app_data6);
+ packet_profile_app_data6 = NULL;
+ }
+
if (profiling_packets_enabled) {
pthread_mutex_destroy(&packet_profile_lock);
}
total = 0;
for (AppProto a = 0; a < ALPROTO_MAX; a++) {
for (int p = 0; p < 257; p++) {
- SCProfilePacketData *pd = &packet_profile_app_data4[a][p];
+ SCProfilePacketData *pd = &packet_profile_app_data4[a * 257 + p];
total += pd->tot;
- pd = &packet_profile_app_data6[a][p];
+ pd = &packet_profile_app_data6[a * 257 + p];
total += pd->tot;
}
}
for (AppProto a = 0; a < ALPROTO_MAX; a++) {
for (int p = 0; p < 257; p++) {
- SCProfilePacketData *pd = &packet_profile_app_data4[a][p];
+ SCProfilePacketData *pd = &packet_profile_app_data4[a * 257 + p];
if (pd->cnt == 0) {
continue;
}
for (AppProto a = 0; a < ALPROTO_MAX; a++) {
for (int p = 0; p < 257; p++) {
- SCProfilePacketData *pd = &packet_profile_app_data6[a][p];
+ SCProfilePacketData *pd = &packet_profile_app_data6[a * 257 + p];
if (pd->cnt == 0) {
continue;
}
SCProfilePacketData *pd;
if (ipver == 4)
- pd = &packet_profile_app_data4[alproto][ipproto];
+ pd = &packet_profile_app_data4[alproto * 257 + ipproto];
else
- pd = &packet_profile_app_data6[alproto][ipproto];
+ pd = &packet_profile_app_data6[alproto * 257 + ipproto];
if (pd->min == 0 || pdt->ticks_spent < pd->min) {
pd->min = pdt->ticks_spent;