]> git.ipfire.org Git - thirdparty/suricata.git/commit
conf: avoid quadratic complexity 10875/head
authorPhilippe Antoine <pantoine@oisf.net>
Thu, 21 Mar 2024 08:38:25 +0000 (09:38 +0100)
committerPhilippe Antoine <pantoine@oisf.net>
Wed, 17 Apr 2024 10:58:39 +0000 (12:58 +0200)
commit77563fd27c73e2a3bae536a94b98bb0f634a9e43
treefdde2b5004cf4feceb1b8003448734546ed25cc9
parent34227649335021ea73032d67df2e341a3c6bdc5f
conf: avoid quadratic complexity

Ticket: 6878

Follow up on 15649424a76d01eb332d85620ffc4956d4f3d9be

When adding many sequence nodes, either from start or scalar event

We add "sequence nodes" whose name is an integer cf sequence_node_name
and then run ConfNodeLookupChild to see if it had been already set
(from the command line cf comment in the code)
And ConfNodeLookupChild iterates the whole linked list...

1. We add node 1
2. To add node 2, we check if node 1 equals this new node
3. To add node 3, we check if nodes 1, or 2 equals this new node's name
And so on...

This commits avoids these checks ig the list is empty at the beginning

(cherry picked from commit 240e068b81275e287ffe6555d4c457a0b3916066)
src/conf-yaml-loader.c