Configuration option `threads: auto` in DPDK's interface node
overassigns available threads to the interface.
Commit
4dfd44d3 changed the signedness of the remaining threads counter,
which caused surpass of the counter initialization.
The if-clause is switched to first initialize and then use the counter.
Ticket: 7798
SCReturnInt(-ERANGE);
}
- if (remaining_auto_cpus > 0) {
- iconf->threads++;
- remaining_auto_cpus--;
- } else if (remaining_auto_cpus == UINT16_MAX) {
+ if (remaining_auto_cpus == UINT16_MAX) {
// first time auto-assignment
remaining_auto_cpus = sched_cpus % live_dev_count;
if (remaining_auto_cpus > 0) {
iconf->threads++;
remaining_auto_cpus--;
}
+ } else if (remaining_auto_cpus > 0) {
+ iconf->threads++;
+ remaining_auto_cpus--;
}
SCLogConfig("%s: auto-assigned %u threads", iconf->iface, iconf->threads);
SCReturnInt(0);