Actions
Bug #2604
closedmemleak: DetectEngineStateAlloc with ipsec-events.rules
Affected Versions:
Effort:
Difficulty:
Label:
Description
Some memleaks are observed when running against pcaps that are comprised of - kerberos/nfs/ike traffic.
Using the source suricata rules ( https://github.com/OISF/suricata/blob/master/rules/ipsec-events.rules ).
Observation - running the same routine/test against traffic that is exclusively smb/http/dns/tls/ssh/smtp does not generate those memleaks.
Pcap privately shared.
Using -
pevma@DonPedro:~/thetrenches/Suricata/QA/tmp$ /opt/suricata-asan/bin/suricata --build-info This is Suricata version 4.1.0-dev (rev 1f4cd75f) Features: UNITTESTS PCAP_SET_BUFF AF_PACKET HAVE_PACKET_FANOUT LIBCAP_NG LIBNET1.1 HAVE_HTP_URI_NORMALIZE_HOOK PCRE_JIT HAVE_NSS HAVE_LUA HAVE_LUAJIT HAVE_LIBJANSSON TLS MAGIC RUST SIMD support: SSE_4_2 SSE_4_1 SSE_3 Atomic intrisics: 1 2 4 8 16 byte(s) 64-bits, Little-endian architecture GCC version 4.2.1 Compatible Clang 6.0.1 (tags/RELEASE_601/final), C version 199901 compiled with _FORTIFY_SOURCE=0 L1 cache line size (CLS)=64 thread local storage method: __thread compiled with LibHTP v0.5.27, linked against LibHTP v0.5.27 Suricata Configuration: AF_PACKET support: yes eBPF support: no XDP support: PF_RING support: no NFQueue support: no NFLOG support: no IPFW support: no Netmap support: no DAG enabled: no Napatech enabled: no WinDivert enabled: no Unix socket enabled: yes Detection enabled: yes Libmagic support: yes libnss support: yes libnspr support: yes libjansson support: yes liblzma support: no hiredis support: no hiredis async with libevent: no Prelude support: no PCRE jit: yes LUA support: yes, through luajit libluajit: yes libgeoip: yes Non-bundled htp: no Old barnyard2 support: no Hyperscan support: yes Libnet support: yes liblz4 support: no Rust support (experimental): yes Rust strict mode: no Rust debug mode: no Suricatasc install: yes Profiling enabled: no Profiling locks enabled: no Development settings: Coccinelle / spatch: yes Unit tests enabled: yes Debug output enabled: no Debug validation enabled: no Generic build parameters: Installation prefix: /opt/suricata-asan Configuration directory: /opt/suricata-asan/etc/suricata/ Log directory: /opt/suricata-asan/var/log/suricata/ --prefix /opt/suricata-asan --sysconfdir /opt/suricata-asan/etc --localstatedir /opt/suricata-asan/var Host: x86_64-pc-linux-gnu Compiler: clang (exec name) / clang (real) GCC Protect enabled: no GCC march native enabled: yes GCC Profile enabled: no Position Independent Executable enabled: no CFLAGS -ggdb3 -Werror -Wchar-subscripts -fno-strict-aliasing -fstack-protector-all -fsanitize=address -fno-omit-frame-pointer -Wno-unused-parameter -Wno-unused-function -march=native -I${srcdir}/../rust/gen/c-headers PCAP_CFLAGS -I/usr/include SECCFLAGS
pevma@DonPedro:~/thetrenches/Suricata/QA/tmp$ sudo rm locallog/* -r; sudo LSAN_OPTIONS=suppressions=/home/pevma/thetrenches/Suricata/suricomp/suricata/qa/lsan.suppress ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-6.0/bin/llvm-symbolizer /opt/suricata-asan/bin/suricata -S /home/pevma/Work/Suricata/suricomp/suricata/rules/ipsec-events.rules -r /home/pevma/thetrenches/pcaps/all/qa-v2/qa-pcaps/kerberos.pcap -l locallog/ [13006] 22/8/2018 -- 21:19:54 - (suricata.c:1084) <Notice> (LogVersion) -- This is Suricata version 4.1.0-dev (rev 1f4cd75f) [13006] 22/8/2018 -- 21:19:54 - (tm-threads.c:2172) <Notice> (TmThreadWaitOnThreadInit) -- all 9 packet processing threads, 4 management threads initialized, engine started. [13006] 22/8/2018 -- 21:19:55 - (suricata.c:2839) <Notice> (SuricataMainLoop) -- Signal Received. Stopping engine. [13007] 22/8/2018 -- 21:19:55 - (source-pcap-file.c:383) <Notice> (ReceivePcapFileThreadExitStats) -- Pcap-file module read 1 files, 20000 packets, 2798691 bytes ================================================================= ==13006==ERROR: LeakSanitizer: detected memory leaks Direct leak of 96 byte(s) in 2 object(s) allocated from: #0 0x4ea760 in __interceptor_malloc (/opt/suricata-asan/bin/suricata+0x4ea760) #1 0xf4159c in DetectEngineStateAlloc /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect-engine-state.c:169:28 #2 0xf41e85 in DetectRunStoreStateTx /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect-engine-state.c:231:19 #3 0xb1c7d9 in DetectRunTxInspectRule /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1311:13 #4 0xb1568b in DetectRunTx /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1545:27 #5 0xaaedc4 in DetectRun /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:141:9 #6 0xaae413 in DetectFlow /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1662:11 #7 0xaadf24 in Detect /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1736:9 #8 0x1434b7e in FlowWorker /home/pevma/thetrenches/Suricata/suricomp/suricata/src/flow-worker.c:258:9 #9 0x18009ce in TmThreadsSlotVarRun /home/pevma/thetrenches/Suricata/suricomp/suricata/src/tm-threads.c:143:17 #10 0x18128be in TmThreadsSlotVar /home/pevma/thetrenches/Suricata/suricomp/suricata/src/tm-threads.c:598:17 #11 0x7fcc98d20f29 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7f29) Indirect leak of 384 byte(s) in 3 object(s) allocated from: #0 0x4ea760 in __interceptor_malloc (/opt/suricata-asan/bin/suricata+0x4ea760) #1 0xf5ad1c in DeStateStoreAlloc /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect-engine-state.c:90:23 #2 0xf41ffd in DeStateSignatureAppend /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect-engine-state.c:138:17 #3 0xf41ef7 in DetectRunStoreStateTx /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect-engine-state.c:240:5 #4 0xb1c7d9 in DetectRunTxInspectRule /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1311:13 #5 0xb1568b in DetectRunTx /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1545:27 #6 0xaaedc4 in DetectRun /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:141:9 #7 0xaae413 in DetectFlow /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1662:11 #8 0xaadf24 in Detect /home/pevma/thetrenches/Suricata/suricomp/suricata/src/detect.c:1736:9 #9 0x1434b7e in FlowWorker /home/pevma/thetrenches/Suricata/suricomp/suricata/src/flow-worker.c:258:9 #10 0x18009ce in TmThreadsSlotVarRun /home/pevma/thetrenches/Suricata/suricomp/suricata/src/tm-threads.c:143:17 #11 0x18128be in TmThreadsSlotVar /home/pevma/thetrenches/Suricata/suricomp/suricata/src/tm-threads.c:598:17 #12 0x7fcc98d20f29 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7f29) SUMMARY: AddressSanitizer: 480 byte(s) leaked in 5 allocation(s). pevma@DonPedro:~/thetrenches/Suricata/QA/tmp$
Actions