pfring: fix leak of configuration data and in single mode

Fix leak of configuration data on exit. Also, in single mode set
thread count to one instead of the CPU count.

Bug: #4734
pull/10525/head
Jason Ish 2 years ago committed by Victor Julien
parent 358f1e35ee
commit 5f0853599b

@ -200,6 +200,7 @@ static void *ParsePfringConfig(const char *iface)
cluster_type default_ctype = CLUSTER_FLOW;
int getctype = 0;
int bool_val;
const char *active_runmode = RunmodeGetActive();
if (unlikely(pfconf == NULL)) {
return NULL;
@ -244,7 +245,9 @@ static void *ParsePfringConfig(const char *iface)
if_default = NULL;
}
if (ConfGetChildValueWithDefault(if_root, if_default, "threads", &threadsstr) != 1) {
if (active_runmode && !strcmp("single", active_runmode)) {
pfconf->threads = 1;
} else if (ConfGetChildValueWithDefault(if_root, if_default, "threads", &threadsstr) != 1) {
pfconf->threads = 1;
} else if (threadsstr != NULL) {
if (strcmp(threadsstr, "auto") == 0) {

@ -701,6 +701,7 @@ TmEcode ReceivePfringThreadDeinit(ThreadVars *tv, void *data)
}
pfring_close(ptv->pd);
SCFree(ptv);
return TM_ECODE_OK;
}

Loading…
Cancel
Save