]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
9 years agoapp-layer-ssl: fix out of bounds memory read 1946/head
Mats Klepsland [Thu, 17 Mar 2016 10:56:52 +0000 (11:56 +0100)] 
app-layer-ssl: fix out of bounds memory read

Added several checks to avoid out of bounds memory read caused
by malformed traffic.

9 years agoip parsing: fix cppcheck negative shift warning 1943/head
Victor Julien [Wed, 16 Mar 2016 11:37:25 +0000 (12:37 +0100)] 
ip parsing: fix cppcheck negative shift warning

[src/util-ip.c:104]: (error) Shifting a negative value is undefined behaviour
[src/util-radix-tree.c:1160]: (error) Shifting a negative value is undefined behaviour
[src/util-radix-tree.c:1357]: (error) Shifting a negative value is undefined behaviour
[src/util-radix-tree.c:1380]: (error) Shifting a negative value is undefined behaviour
[src/util-radix-tree.c:1438]: (error) Shifting a negative value is undefined behaviour

9 years agostats: fix unix socket crash
Victor Julien [Wed, 16 Mar 2016 11:20:17 +0000 (12:20 +0100)] 
stats: fix unix socket crash

Reset counters_global_id at ctx destruction. In the unix socket
runmode the lack of this reset would cause the id's to increase with
each pcap, leading to an ever larger stats array.

9 years agodetect: denote the max detection list; fix issue 1674.
Jason Ish [Wed, 27 Jan 2016 05:22:27 +0000 (23:22 -0600)] 
detect: denote the max detection list; fix issue 1674.

Denotes the max detection list so that rule validation can
allow post-detection lists to come after base64_data, but
disallow detection lists to come after it.

9 years agosmtp: use detection file tracking
Victor Julien [Wed, 9 Mar 2016 19:44:26 +0000 (20:44 +0100)] 
smtp: use detection file tracking

As SMTP file_data detection uses the file API, the file's inspect
tracker should be considered when pruning files.

This patch sets the FILE_USE_DETECT flag on files tracked by smtp.

It also adds logic to move inspected tracker ahead if detection
doesn't do it, like when no rules are matching or detection engine
is disabled.

9 years agofile: optionally use detect tracking in pruning
Victor Julien [Wed, 9 Mar 2016 19:43:54 +0000 (20:43 +0100)] 
file: optionally use detect tracking in pruning

When the file API is used to do content inspection (currently only
smtp does this), the detection should be considered while pruning
the file chunks.

This patch introduces a new flag for the file API: FILE_USE_DETECT

When it is used, 'FilePrune' will not remove chunks that are (partly)
beyond the File::content_inspected tracker.

When using this flag, it's important to realize that when the detect
engine is disabled or rules are not matching, content_inspected
might not get updated.

9 years agosmtp: add file_data debug code
Victor Julien [Wed, 9 Mar 2016 16:24:51 +0000 (17:24 +0100)] 
smtp: add file_data debug code

9 years agofile logging: fix bad end of file check
Victor Julien [Thu, 10 Mar 2016 08:56:15 +0000 (09:56 +0100)] 
file logging: fix bad end of file check

File storage could end file storing when the logger was invoked
while no new data chunks were available.

9 years agosmtp: fix config parsing and config defaults
Victor Julien [Tue, 15 Dec 2015 09:13:48 +0000 (10:13 +0100)] 
smtp: fix config parsing and config defaults

9 years agosmtp: consider file state in file_data inspection limits
Victor Julien [Mon, 14 Dec 2015 17:34:38 +0000 (18:34 +0100)] 
smtp: consider file state in file_data inspection limits

9 years agopfring: strip prio from vlan id 1938/head
Victor Julien [Tue, 15 Mar 2016 17:01:06 +0000 (18:01 +0100)] 
pfring: strip prio from vlan id

9 years agoafpacket: strip prio from vlan id
Victor Julien [Tue, 15 Mar 2016 17:00:54 +0000 (18:00 +0100)] 
afpacket: strip prio from vlan id

9 years agocppcheck: work around snprintf warning 1937/head
Victor Julien [Mon, 7 Mar 2016 15:55:09 +0000 (16:55 +0100)] 
cppcheck: work around snprintf warning

Cppcheck 1.72 gives a warning on the following code pattern:

    char blah[32] = "";
    snprintf(blah, sizeof(blah), "something");

The warning is:

    (error) Buffer is accessed out of bounds.

While this appears to be a FP, in most cases the initialization to ""
was unnecessary as the snprintf statement immediately follows the
variable declaration.

9 years agorules: add rules for TLS SNI app layer events
Mats Klepsland [Tue, 15 Mar 2016 07:08:07 +0000 (08:08 +0100)] 
rules: add rules for TLS SNI app layer events

9 years agoapp-layer-ssl: fix memleak
Mats Klepsland [Fri, 11 Mar 2016 11:55:38 +0000 (12:55 +0100)] 
app-layer-ssl: fix memleak

Avoid that the SNI extension code is executed twice sometimes, causing
memory leaks.

9 years agodaemon: suppress coverity resource leak warning (CID 400725) 1927/head
Victor Julien [Fri, 11 Mar 2016 08:49:57 +0000 (09:49 +0100)] 
daemon: suppress coverity resource leak warning (CID 400725)

9 years agocoverity: suppress CID 1038112
Victor Julien [Fri, 11 Mar 2016 08:46:38 +0000 (09:46 +0100)] 
coverity: suppress CID 1038112

9 years agohtp: optimize multipart parsing
Victor Julien [Fri, 11 Mar 2016 08:39:20 +0000 (09:39 +0100)] 
htp: optimize multipart parsing

Store boundary in a single stack buffer instead of 2 heap allocated
buffers.

9 years agohtp: fix boundry error handling (CID 1153934)
Victor Julien [Fri, 11 Mar 2016 08:29:20 +0000 (09:29 +0100)] 
htp: fix boundry error handling (CID 1153934)

9 years agohtp: fix dead code warning (CID 1153933)
Victor Julien [Fri, 11 Mar 2016 08:25:23 +0000 (09:25 +0100)] 
htp: fix dead code warning (CID 1153933)

9 years agounified2: fix unused value warning (CID 1247404)
Victor Julien [Fri, 11 Mar 2016 08:23:07 +0000 (09:23 +0100)] 
unified2: fix unused value warning (CID 1247404)

9 years agolua: fix unlikely null-deref during setup (CID 1351209)
Victor Julien [Fri, 11 Mar 2016 06:14:39 +0000 (07:14 +0100)] 
lua: fix unlikely null-deref during setup (CID 1351209)

9 years agobase64_decode: fix potential keyword parsing issue (CID 1340064)
Victor Julien [Fri, 11 Mar 2016 06:07:07 +0000 (07:07 +0100)] 
base64_decode: fix potential keyword parsing issue (CID 1340064)

9 years agoioctl: fix NULL check after dereference (CID 1204326)
Victor Julien [Fri, 11 Mar 2016 06:01:06 +0000 (07:01 +0100)] 
ioctl: fix NULL check after dereference (CID 1204326)

9 years agolua: fix minor coverity issues
Victor Julien [Fri, 11 Mar 2016 05:56:35 +0000 (06:56 +0100)] 
lua: fix minor coverity issues

Remove checks that can never be false. CID 12320761312012

9 years agoafpacket: suppress harmless Coverity warning (1192960)
Victor Julien [Fri, 11 Mar 2016 05:54:03 +0000 (06:54 +0100)] 
afpacket: suppress harmless Coverity warning (1192960)

9 years agoFix compilation on systems with Musl 1926/head
Victor Julien [Sat, 12 Mar 2016 09:32:54 +0000 (10:32 +0100)] 
Fix compilation on systems with Musl

9 years agosmtp: clean up thread local memory 1923/head
Victor Julien [Wed, 9 Mar 2016 16:02:06 +0000 (17:02 +0100)] 
smtp: clean up thread local memory

9 years agostream-tcp: improve function doc
Victor Julien [Tue, 22 Dec 2015 09:09:49 +0000 (10:09 +0100)] 
stream-tcp: improve function doc

9 years agoAdd global MAX macro.
Victor Julien [Wed, 7 Oct 2015 13:56:01 +0000 (15:56 +0200)] 
Add global MAX macro.

9 years agodecode-events: counters for decode events errors 1921/head
Maurizio Abba [Thu, 10 Mar 2016 13:58:21 +0000 (13:58 +0000)] 
decode-events: counters for decode events errors

We want to add counters in order to track the number of times we hit a
decode event. A decode event is related to an error in the protocol
decoding over a certain packet.

This patch fist modifies the decode-event list, reordering it in order
to separate single packet events from stream-related events and adding
the prefix "decoder" to decode events.
The counters are created during the decode setup and the relative event
counter is increased every time a packet with the flag PKT_IS_INVALID is
finalized in the decode phase

9 years agoaf-packet: don't check GRO LRO on non ethernet 1917/head
Eric Leblond [Wed, 9 Mar 2016 13:29:19 +0000 (14:29 +0100)] 
af-packet: don't check GRO LRO on non ethernet

This way we avoid an error message when sniffing on a non Ethernet
device.

9 years agoaf-packet: handle raw link
Eric Leblond [Wed, 9 Mar 2016 13:10:26 +0000 (14:10 +0100)] 
af-packet: handle raw link

If no link layer header is reported then it is a raw header.

9 years agoaf-packet: disable most code when not built in
Eric Leblond [Wed, 9 Mar 2016 15:57:29 +0000 (16:57 +0100)] 
af-packet: disable most code when not built in

When af-packet is not build we can avoid to build a large amount
of code.

9 years agostream: fix stream.inline default 1915/head
Victor Julien [Wed, 9 Mar 2016 12:21:45 +0000 (13:21 +0100)] 
stream: fix stream.inline default

If stream.inline setting was missing it would default to IDS.

This patch changes the default to 'auto', meaning that in IPS mode
the stream engine also uses IPS mode and in IDS mode it's still in
IDS mode.

Bug #1570

9 years agodns: turn debug BUG_ON's into events
Victor Julien [Thu, 3 Dec 2015 12:06:19 +0000 (13:06 +0100)] 
dns: turn debug BUG_ON's into events

9 years agodetect: allow for more than 64k mpm rules 1914/head
Victor Julien [Tue, 8 Mar 2016 19:29:09 +0000 (20:29 +0100)] 
detect: allow for more than 64k mpm rules

9 years agodefrag: fix bad packet error handling
Victor Julien [Tue, 8 Mar 2016 15:15:45 +0000 (16:15 +0100)] 
defrag: fix bad packet error handling

When defrag creates a new reassembled IP packet, it then passes this
packet to the IP decoder. If this decoder returns an error the packet
is returned back to the packet pool with a call to TmqhOutputPacketpool

This lead to the first problem. The returned packet had it's p->root
pointer set, and it's PKT_TUNNEL flag set. This could cause problems
in TmqhOutputPacketpool, as this may reference the packet referenced
in p->root.

The second and more glaring problem is that the packet that was
returned to the packetpool, was still returned by the Defrag function
and processed further. It would then at the end of it's processing
be returned to the packet pool, which at this point already had a
reference to this packet.

This patch fixes both issues by unsetting the tunnel references and
returning NULL from Defrag in this case.

9 years agopacket pool: make sure packet next ptr is always set
Victor Julien [Tue, 8 Mar 2016 14:21:03 +0000 (15:21 +0100)] 
packet pool: make sure packet next ptr is always set

9 years agopacket pool: turn bad check into BUG_ON
Victor Julien [Tue, 8 Mar 2016 14:13:03 +0000 (15:13 +0100)] 
packet pool: turn bad check into BUG_ON

9 years agoconfigure: bypass libpcre 8.35 check
Andreas Herz [Mon, 7 Mar 2016 20:33:14 +0000 (21:33 +0100)] 
configure: bypass libpcre 8.35 check

When --with-libpcre-libraries is used we skip the libpcre 8.35 check
since pkg-config might still point to the 8.35 version installed
although newer version was passed with --with-libpcre-libraries.

9 years agoutil-radix-tree: fix memleak 1910/head
Eric Leblond [Mon, 7 Mar 2016 08:16:41 +0000 (09:16 +0100)] 
util-radix-tree: fix memleak

Logic used when adding a new prefix to a node was not correct
as we were allocating a prefix that could be at the end unused.
This patch is updating the code to have a complete creation to
be done if and only if we are needing the complete object. In
the other cases, it was enough to use the function input values.

This fixes:

104 (48 direct, 56 indirect) bytes in 2 blocks are definitely lost in loss record 184 of 327
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x9C2DAD: SCRadixCreatePrefix (util-radix-tree.c:144)
   by 0x9AFA5B: SCRadixAddKey (util-radix-tree.c:522)
   by 0x9B1A4D: SCRadixAddKeyIPV4Netblock (util-radix-tree.c:897)
   by 0x67C824: IPOnlyPrepare (detect-engine-iponly.c:1197)
   by 0x55172B: SigAddressPrepareStage2 (detect.c:3534)
   by 0x5486F4: SigGroupBuild (detect.c:4671)
   by 0x547C87: SigLoadSignatures (detect.c:538)
   by 0x8FB5D0: LoadSignatures (suricata.c:1976)
   by 0x8F3B32: main (suricata.c:2342)

9 years agodetect-ssl-state: fix memleak
Eric Leblond [Sun, 6 Mar 2016 20:40:26 +0000 (21:40 +0100)] 
detect-ssl-state: fix memleak

9 years agodetect-ssl-version: simplify code and fix memlea
Eric Leblond [Sun, 6 Mar 2016 20:40:18 +0000 (21:40 +0100)] 
detect-ssl-version: simplify code and fix memlea

9 years agodetect-tls: fix memleaks
Eric Leblond [Sun, 6 Mar 2016 20:07:46 +0000 (21:07 +0100)] 
detect-tls: fix memleaks

9 years agotm-threads: unify thread names handling
Eric Leblond [Fri, 4 Mar 2016 18:52:08 +0000 (19:52 +0100)] 
tm-threads: unify thread names handling

TmThreadCreate copy string provided as name for threads to
avoid any issue is a non allocated string is used.

This patch also introduce TmThreadSetGroupName function. This
function is used to be sure we have an allocation when
assigning the thread group name. This way we can free allocated
memory at exit.

Both code changes have required some fixes in different parts of
the code to be in sync with the new API.

Good point about these changes is that it fixes an inconsistency
were some names were not allocated and some were.

9 years agodefrag: free defrag tree at exit
Eric Leblond [Fri, 4 Mar 2016 19:52:45 +0000 (20:52 +0100)] 
defrag: free defrag tree at exit

This fixes:

72 bytes in 3 blocks are definitely lost in loss record 153 of 316
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x9AF041: SCRadixCreateRadixTree (util-radix-tree.c:430)
   by 0x50FF5D: DefragPolicyLoadFromConfig (defrag-config.c:138)
   by 0x5129F5: DefragInit (defrag.c:962)
   by 0x87ECFD: UnixSocketPcapFilesCheck (runmode-unix-socket.c:386)
   by 0x90FEC0: UnixCommandBackgroundTasks (unix-manager.c:430)
   by 0x913C6D: UnixManager (unix-manager.c:980)
   by 0x9072F3: TmThreadsManagement (tm-threads.c:602)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)

9 years agooutput-stats: fix memleak
Eric Leblond [Fri, 4 Mar 2016 18:36:43 +0000 (19:36 +0100)] 
output-stats: fix memleak

This fixes:

16 bytes in 2 blocks are definitely lost in loss record 69 of 319
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x85955D: OutputStatsLogThreadInit (output-stats.c:118)
   by 0x4CAE13: StatsMgmtThread (counters.c:352)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)

9 years agotmqh-flow: fix memleak in TmqhFlowCtx cleaning
Eric Leblond [Fri, 4 Mar 2016 18:33:25 +0000 (19:33 +0100)] 
tmqh-flow: fix memleak in TmqhFlowCtx cleaning

This fixes:

96 bytes in 4 blocks are definitely lost in loss record 178 of 320
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x8FF88C: TmqhOutputFlowSetupCtx (tmqh-flow.c:163)
   by 0x908D5F: TmThreadCreate (tm-threads.c:1097)
   by 0x909A62: TmThreadCreatePacketHandler (tm-threads.c:1156)
   by 0x8790CF: RunModeFilePcapAutoFp (runmode-pcap-file.c:188)
   by 0x8837CB: RunModeDispatch (runmodes.c:372)
   by 0x87F2A5: UnixSocketPcapFilesCheck (runmode-unix-socket.c:393)
   by 0x910460: UnixCommandBackgroundTasks (unix-manager.c:430)
   by 0x91420D: UnixManager (unix-manager.c:980)
   by 0x907853: TmThreadsManagement (tm-threads.c:602)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)

9 years agotm-threads: fix memleak
Eric Leblond [Fri, 4 Mar 2016 18:22:46 +0000 (19:22 +0100)] 
tm-threads: fix memleak

Fix cleaning of threads where mutex and condition where not freed.

This fixes:

352 (192 direct, 160 indirect) bytes in 4 blocks are definitely lost in loss record 301 of 327
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x909404: TmThreadInitMC (tm-threads.c:1764)
   by 0x908DE7: TmThreadCreate (tm-threads.c:1120)
   by 0x90A326: TmThreadCreateMgmtThread (tm-threads.c:1183)
   by 0x4CA0AD: StatsSpawnThreads (counters.c:856)
   by 0x87F254: UnixSocketPcapFilesCheck (runmode-unix-socket.c:396)
   by 0x910330: UnixCommandBackgroundTasks (unix-manager.c:430)
   by 0x9140DD: UnixManager (unix-manager.c:980)
   by 0x9077F3: TmThreadsManagement (tm-threads.c:600)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)

9 years agotm-queue: unify queue name handling
Eric Leblond [Fri, 4 Mar 2016 18:13:43 +0000 (19:13 +0100)] 
tm-queue: unify queue name handling

Queue name was sometimes allocated and sometimes not. This
patch updates the behavior of creation function so it is
always allocated. This way we can free it at exit and fix
memory leak.

This fixes:

900 bytes in 110 blocks are definitely lost in loss record 322 of 329
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x803E0A9: strdup (in /lib/x86_64-linux-gnu/libc-2.21.so)
   by 0x90090E: StoreQueueId (tmqh-flow.c:112)
   by 0x8FFEA8: TmqhOutputFlowSetupCtx (tmqh-flow.c:180)
   by 0x908C7F: TmThreadCreate (tm-threads.c:1095)
   by 0x909982: TmThreadCreatePacketHandler (tm-threads.c:1154)
   by 0x87906F: RunModeFilePcapAutoFp (runmode-pcap-file.c:188)
   by 0x88376B: RunModeDispatch (runmodes.c:372)
   by 0x87F245: UnixSocketPcapFilesCheck (runmode-unix-socket.c:393)
   by 0x9102B0: UnixCommandBackgroundTasks (unix-manager.c:430)
   by 0x91405D: UnixManager (unix-manager.c:980)
   by 0x907773: TmThreadsManagement (tm-threads.c:600)

tm-queue: fix logic WIP

9 years agounix-manager: fix memleak at exit
Eric Leblond [Fri, 4 Mar 2016 17:36:00 +0000 (18:36 +0100)] 
unix-manager: fix memleak at exit

Buffer allocated for UnixClient was not correctly freed.

9 years agoutil-host-info: fix memleaks
Eric Leblond [Fri, 4 Mar 2016 17:25:43 +0000 (18:25 +0100)] 
util-host-info: fix memleaks

This fixes pcre related memory leak in SCKernelVersionIsAtLeast
function.

9 years agoutil: get rid of json_array_append
Eric Leblond [Fri, 4 Mar 2016 17:04:31 +0000 (18:04 +0100)] 
util: get rid of json_array_append

This function is causing a memleak because it is necessary to clean
up after usage.

This fixes at least:

37 (32 direct, 5 indirect) bytes in 1 blocks are definitely lost in loss record 104 of 394
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x66D0C7B: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.7.0)
   by 0x943584: LiveDeviceIfaceList (util-device.c:264)
   by 0x910889: UnixCommandExecute (unix-manager.c:486)
   by 0x910D7E: UnixCommandRun (unix-manager.c:545)
   by 0x911193: UnixMain (unix-manager.c:593)
   by 0x913CC7: UnixManager (unix-manager.c:961)
   by 0x907753: TmThreadsManagement (tm-threads.c:600)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)

9 years agorunmodes: fix memleak
Eric Leblond [Fri, 4 Mar 2016 17:03:54 +0000 (18:03 +0100)] 
runmodes: fix memleak

active_runmode value was leaking in unix socket mode.

9 years agounix-manager: fix memleak
Eric Leblond [Fri, 4 Mar 2016 16:59:45 +0000 (17:59 +0100)] 
unix-manager: fix memleak

This fixes:

2,595 (1,824 direct, 771 indirect) bytes in 57 blocks are definitely lost in loss record 328 of 332
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x66D0C7B: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.7.0)
   by 0x911A27: UnixManagerListCommand (unix-manager.c:766)
   by 0x9108A9: UnixCommandExecute (unix-manager.c:486)
   by 0x910D9E: UnixCommandRun (unix-manager.c:545)
   by 0x9111B3: UnixMain (unix-manager.c:593)
   by 0x913D27: UnixManager (unix-manager.c:961)
   by 0x907773: TmThreadsManagement (tm-threads.c:600)
   by 0x68DE283: start_thread (pthread_create.c:333)
   by 0x80A6A4C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)

9 years agooutput-tx: fix memleak
Eric Leblond [Fri, 4 Mar 2016 12:50:26 +0000 (13:50 +0100)] 
output-tx: fix memleak

This fixes:

Direct leak of 31752 byte(s) in 3969 object(s) allocated from:
    #0 0x4c396b in malloc (/opt/suricata-asan/bin/suricata+0x4c396b)
    #1 0xe385b9 in OutputTxLogThreadInit /home/pmanev/sandnet-qa/stage/oisf/src/output-tx.c:193:34
    #2 0x106c255 in TmThreadsSlotPktAcqLoop /home/pmanev/sandnet-qa/stage/oisf/src/tm-threads.c:295:17
    #3 0x7fbc9fcb3181 in start_thread /build/eglibc-3GlaMS/eglibc-2.19/nptl/pthread_create.c:312

9 years agooutput-filedata: fix memleak
Eric Leblond [Fri, 4 Mar 2016 12:47:50 +0000 (13:47 +0100)] 
output-filedata: fix memleak

This fixes:

Direct leak of 31792 byte(s) in 3974 object(s) allocated from:
    #0 0x4c396b in malloc (/opt/suricata-asan/bin/suricata+0x4c396b)
    #1 0xd86ce2 in OutputFiledataLogThreadInit /home/pmanev/sandnet-qa/stage/oisf/src/output-filedata.c:308:34
    #2 0x106c255 in TmThreadsSlotPktAcqLoop /home/pmanev/sandnet-qa/stage/oisf/src/tm-threads.c:295:17
    #3 0x7fbc9fcb3181 in start_thread /build/eglibc-3GlaMS/eglibc-2.19/nptl/pthread_create.c:312

9 years agooutput-packet: fix memleak
Eric Leblond [Fri, 4 Mar 2016 12:43:07 +0000 (13:43 +0100)] 
output-packet: fix memleak

This fixes:

Direct leak of 31832 byte(s) in 3979 object(s) allocated from:
    #0 0x4c396b in malloc (/opt/suricata-asan/bin/suricata+0x4c396b)
    #1 0xe22129 in OutputPacketLogThreadInit /home/pmanev/sandnet-qa/stage/oisf/src/output-packet.c:123:34
    #2 0x106c255 in TmThreadsSlotPktAcqLoop /home/pmanev/sandnet-qa/stage/oisf/src/tm-threads.c:295:17
    #3 0x7fbc9fcb3181 in start_thread /build/eglibc-3GlaMS/eglibc-2.19/nptl/pthread_create.c:312

9 years agooutput-file: fix memleak
Eric Leblond [Fri, 4 Mar 2016 12:38:54 +0000 (13:38 +0100)] 
output-file: fix memleak

This fixes:

Direct leak of 31856 byte(s) in 3982 object(s) allocated from:
    #0 0x4c396b in malloc (/opt/suricata-asan/bin/suricata+0x4c396b)
    #1 0xd7ff39 in OutputFileLogThreadInit /home/pmanev/sandnet-qa/stage/oisf/src/output-file.c:182:34
    #2 0x106c255 in TmThreadsSlotPktAcqLoop /home/pmanev/sandnet-qa/stage/oisf/src/tm-threads.c:295:17
    #3 0x7fbc9fcb3181 in start_thread /build/eglibc-3GlaMS/eglibc-2.19/nptl/pthread_create.c:312

9 years agolog-filestore: suppress unused code
Eric Leblond [Fri, 4 Mar 2016 12:33:16 +0000 (13:33 +0100)] 
log-filestore: suppress unused code

Code was unused and was leaking memory.

This fixes:

Direct leak of 614240 byte(s) in 3839 object(s) allocated from:
    #0 0x4c396b in malloc (/opt/suricata-asan/bin/suricata+0x4c396b)
    #1 0x11bc12e in LogFileNewCtx /home/pmanev/sandnet-qa/stage/oisf/src/util-logopenfile.c:474:27
    #2 0xcf7ef2 in LogFilestoreLogInitCtx /home/pmanev/sandnet-qa/stage/oisf/src/log-filestore.c:430:31
    #3 0xec3275 in RunModeInitializeOutputs /home/pmanev/sandnet-qa/stage/oisf/src/runmodes.c:763:26
    #4 0xeae17f in UnixSocketPcapFilesCheck /home/pmanev/sandnet-qa/stage/oisf/src/runmode-unix-socket.c:391:9
    #5 0x109bc37 in UnixCommandBackgroundTasks /home/pmanev/sandnet-qa/stage/oisf/src/unix-manager.c:430:20
    #6 0x10a9be2 in UnixManager /home/pmanev/sandnet-qa/stage/oisf/src/unix-manager.c:977:9
    #7 0x1075643 in TmThreadsManagement /home/pmanev/sandnet-qa/stage/oisf/src/tm-threads.c:600:9
    #8 0x7fbc9fcb3181 in start_thread /build/eglibc-3GlaMS/eglibc-2.19/nptl/pthread_create.c:312

9 years agodecode: update icmpv6 message handling
Eric Leblond [Thu, 3 Mar 2016 09:35:19 +0000 (10:35 +0100)] 
decode: update icmpv6 message handling

This patch adds two new events relative to icmpv6. One for packets
using unassigned icmpv6 type. The second one for packets using
private experimentation type.

Icmpv6 type table taken from http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#icmpv6-parameters-2

9 years agogre: support transparent ethernet bridge decoding 1908/head
Victor Julien [Fri, 19 Feb 2016 23:33:58 +0000 (00:33 +0100)] 
gre: support transparent ethernet bridge decoding

9 years agopfring: small cleanup
Victor Julien [Thu, 3 Mar 2016 10:44:42 +0000 (11:44 +0100)] 
pfring: small cleanup

9 years agopkt acq: introduce break loop API
cardigliano [Tue, 20 Oct 2015 16:24:25 +0000 (18:24 +0200)] 
pkt acq: introduce break loop API

This patch adds a new callback PktAcqBreakLoop() in TmModule to let
packet acquisition modules define "break-loop" functions to terminate
the capture loop. This is useful in case of blocking functions that
need special actions to take place in order to stop the execution.

Implement this for PF_RING

9 years agorule-parsing: remove unnecessary code 1905/head
Andreas Herz [Fri, 4 Mar 2016 21:29:02 +0000 (22:29 +0100)] 
rule-parsing: remove unnecessary code

Those lines were included former to prevent possible null pointer
dereference but that won't happen anymore with the rest of the rework
done in the code. The code even results in a control flow issue reported
by coverity scan, so just remove it.

9 years agoBUG #1689: fix stack overflow when parsing variables
Alexander Gozman [Fri, 4 Mar 2016 13:18:46 +0000 (16:18 +0300)] 
BUG #1689: fix stack overflow when parsing variables

Suricata crashed when variable (either address or port)
referred to itself or if one created a looped chain of
variables. For instance:

HOME_NET:     "!$EXTERNAL_NET"
EXTERNAL_NET: "!$HOME_NET"

Or:

Var1: "$Var2"
Var2: "$Var3"
Var3: "$Var1"

9 years agooutput-json: constify API 1900/head
Victor Julien [Tue, 1 Mar 2016 16:31:33 +0000 (17:31 +0100)] 
output-json: constify API

9 years agoalert-debuglog: trigger rotation on non-decoder events as well
Jason Ish [Wed, 2 Mar 2016 15:54:07 +0000 (09:54 -0600)] 
alert-debuglog: trigger rotation on non-decoder events as well

The write handling was missed for non-decoder events that
would trigger rotation after a HUP.

9 years agogccprotect: fix SECLDFLAGS not getting used
Victor Julien [Thu, 3 Mar 2016 08:57:46 +0000 (09:57 +0100)] 
gccprotect: fix SECLDFLAGS not getting used

9 years agoapp-layer-smtp: fix memory leak
Eric Leblond [Tue, 1 Mar 2016 13:59:13 +0000 (14:59 +0100)] 
app-layer-smtp: fix memory leak

This patch fixes the following leak:

Direct leak of 9982880 byte(s) in 2902 object(s) allocated from:
    #0 0x4c253b in malloc ??:?
    #1 0x10c39ac in MimeDecInitParser /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/util-decode-mime.c:2379
    #2 0x6a0f91 in SMTPProcessRequest /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/app-layer-smtp.c:1085
    #3 0x697658 in SMTPParse /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/app-layer-smtp.c:1185
    #4 0x68fa7a in SMTPParseClientRecord /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/app-layer-smtp.c:1208
    #5 0x6561c5 in AppLayerParserParse /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/app-layer-parser.c:908
    #6 0x53dc2e in AppLayerHandleTCPData /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/app-layer.c:444
    #7 0xf8e0af in DoReassemble /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp-reassemble.c:2635
    #8 0xf8c3f8 in StreamTcpReassembleAppLayer /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp-reassemble.c:3028
    #9 0xf94267 in StreamTcpReassembleHandleSegmentUpdateACK /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp-reassemble.c:3404
    #10 0xf9643d in StreamTcpReassembleHandleSegment /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp-reassemble.c:3432
    #11 0xf578b4 in HandleEstablishedPacketToClient /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp.c:2245
    #12 0xeea3c7 in StreamTcpPacketStateEstablished /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp.c:2489
    #13 0xec1d38 in StreamTcpPacket /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp.c:4568
    #14 0xeb0e16 in StreamTcp /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/stream-tcp.c:5064
    #15 0xff52a4 in TmThreadsSlotVarRun /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/tm-threads.c:130
    #16 0xffdad1 in TmThreadsSlotVar /home/victor/qa/buildbot/donkey/z600fuzz/Private/src/tm-threads.c:474
    #17 0x7f7cd678d181 in start_thread /build/buildd/eglibc-2.19/nptl/pthread_create.c:312 (discriminator 2)

We come to this case when a SMTP session contains at least 2 mails
and then the ending of the first is not correctly detected. In that
case, switching to a new tx seems a good solution. This way we still
have partial logging.

9 years agoapp-layer-smtp: fix mem leak and add new alert
Eric Leblond [Tue, 1 Mar 2016 14:44:27 +0000 (15:44 +0100)] 
app-layer-smtp: fix mem leak and add new alert

If SMTP session is weird then we may reach a state where a field
like MAIL FROM is seen as duplicated.

Valgrind output is:

30 bytes in 1 blocks are definitely lost in loss record 96 of 399
   at 0x4C29C0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x4A5803: SMTPParseCommandWithParam (app-layer-smtp.c:996)
   by 0x4A4DCE: SMTPParseCommandMAILFROM (app-layer-smtp.c:1016)
   by 0x4A3F55: SMTPProcessRequest (app-layer-smtp.c:1127)
   by 0x4A1F8C: SMTPParse (app-layer-smtp.c:1191)
   by 0x493AD7: SMTPParseClientRecord (app-layer-smtp.c:1214)
   by 0x4878A6: AppLayerParserParse (app-layer-parser.c:908)
   by 0x42384E: AppLayerHandleTCPData (app-layer.c:444)
   by 0x8D7EAD: DoReassemble (stream-tcp-reassemble.c:2635)
   by 0x8D795F: StreamTcpReassembleAppLayer (stream-tcp-reassemble.c:3028)
   by 0x8D8BE0: StreamTcpReassembleHandleSegmentUpdateACK (stream-tcp-reassemble.c:3404)
   by 0x8D8F6E: StreamTcpReassembleHandleSegment (stream-tcp-reassemble.c:3432)

9 years agobuild: install app-layer-events.rules
Eric Leblond [Tue, 1 Mar 2016 08:12:53 +0000 (09:12 +0100)] 
build: install app-layer-events.rules

9 years agofile: fix flags type in API
Victor Julien [Mon, 14 Dec 2015 17:27:09 +0000 (18:27 +0100)] 
file: fix flags type in API

9 years agohttp: remove unused param from HtpBodyAppendChunk
Victor Julien [Fri, 13 Nov 2015 22:26:07 +0000 (23:26 +0100)] 
http: remove unused param from HtpBodyAppendChunk

9 years agospm: constify search args
Victor Julien [Fri, 13 Nov 2015 06:55:44 +0000 (07:55 +0100)] 
spm: constify search args

9 years agofile: shrink data structure
Victor Julien [Fri, 13 Nov 2015 09:33:21 +0000 (10:33 +0100)] 
file: shrink data structure

9 years agohtp file: constify name/data args
Victor Julien [Fri, 13 Nov 2015 06:58:15 +0000 (07:58 +0100)] 
htp file: constify name/data args

9 years agofile: constify data/name args
Victor Julien [Fri, 13 Nov 2015 06:56:36 +0000 (07:56 +0100)] 
file: constify data/name args

9 years agohttp body: use HTPCalloc
Victor Julien [Fri, 13 Nov 2015 21:53:55 +0000 (22:53 +0100)] 
http body: use HTPCalloc

9 years agohtp: add HTPCalloc wrapper
Victor Julien [Fri, 13 Nov 2015 16:11:08 +0000 (17:11 +0100)] 
htp: add HTPCalloc wrapper

9 years agomagic: make data arg const
Victor Julien [Mon, 30 Nov 2015 20:20:59 +0000 (21:20 +0100)] 
magic: make data arg const

9 years agodcerpc: cleanup list handling
Jason Ish [Tue, 1 Mar 2016 21:08:14 +0000 (15:08 -0600)] 
dcerpc: cleanup list handling

9 years agodcerpc: fix memory leak when called from smb
Jason Ish [Tue, 1 Mar 2016 20:36:17 +0000 (14:36 -0600)] 
dcerpc: fix memory leak when called from smb

When DCERPC was wrapped in SMB it wasn't being initialized or
cleaned up properly. To fix, expose DCERPC initialization and
cleanup functions for use by the SMB application layer.

Redmine ticket:
https://redmine.openinfosecfoundation.org/issues/1708

9 years agorule-parsing: quick fix for rules with wrong double quotes
Andreas Herz [Mon, 29 Feb 2016 21:37:24 +0000 (22:37 +0100)] 
rule-parsing: quick fix for rules with wrong double quotes

The stripping of leading and trailing "s has issues with rules like the
ones described in issue 1638 thus resulted in crashing the rule parser.
So for now this is a quick fix which approaches this issue directly by
stripping those "s correctly and handling error cases. It also adds the
skip for leading spaces at the msg keyword and worksaround a possible
null pointer dereference (that should never occur though).
A more general approach should be done in the future.

9 years agolua output: clean up memory at shutdown 1889/head
Victor Julien [Tue, 1 Mar 2016 11:53:02 +0000 (12:53 +0100)] 
lua output: clean up memory at shutdown

Lua module and submodules we're completely freed at exit, and nor
was the lua_State.

This patch does all the cleanup.

9 years agopcre: use pcre_free_study to free the study data 1887/head
Victor Julien [Tue, 1 Mar 2016 07:59:07 +0000 (08:59 +0100)] 
pcre: use pcre_free_study to free the study data

9 years agodetect ports: fix memory leak
Victor Julien [Mon, 29 Feb 2016 08:37:04 +0000 (09:37 +0100)] 
detect ports: fix memory leak

Fix mem leak on rules that contained ports like "![21,25,119]".

9 years agovlan: fix bad checks in unittests
Victor Julien [Sun, 28 Feb 2016 13:29:09 +0000 (14:29 +0100)] 
vlan: fix bad checks in unittests

9 years agonfqueue: fix wrong return value check in error cases 1883/head
Andreas Herz [Thu, 25 Feb 2016 20:33:36 +0000 (21:33 +0100)] 
nfqueue: fix wrong return value check in error cases

The check for the return value was wrong, we have 0 for success and 1
(and 2) for the error cases like TM_ECODE_FAILED, so we should quit
unless TM_ECODE_OK (0) is returned for NFQInitThread. This fixes #1870

9 years agomodbus: fix compiler uninitialized warnings with -Wmaybe-uninitialized
DIALLO David [Thu, 25 Feb 2016 09:37:52 +0000 (10:37 +0100)] 
modbus: fix compiler uninitialized warnings with -Wmaybe-uninitialized

All variables are initialized thanks to ModbusExtractUint8 or ModbusExtractUint16
function that extracts 8bits or 16bits data from pointer the received input data.
In case of extracting error (because of length), ModbusExtractUint8 or
ModbusExtractUint16 returns an error that is managed by the caller function.

All variables are now initialized to zero when they are declared. It does not
change anything functionnally but it removes Modbus warnings.

9 years agomake install-rules: update URL to https and 3.0
Victor Julien [Thu, 25 Feb 2016 14:01:29 +0000 (15:01 +0100)] 
make install-rules: update URL to https and 3.0

9 years agocuda: fix compilation
Victor Julien [Sat, 30 Jan 2016 16:54:41 +0000 (17:54 +0100)] 
cuda: fix compilation

9 years agocuda: update build system for modern versions
Victor Julien [Sat, 30 Jan 2016 16:28:28 +0000 (17:28 +0100)] 
cuda: update build system for modern versions

Remove support for compute capabilities below 2.0.

Add capabilities until 5.3.

9 years agoxff: fix address overwrite in forward case
Eric Leblond [Thu, 11 Feb 2016 10:44:12 +0000 (11:44 +0100)] 
xff: fix address overwrite in forward case

9 years agooutput-json-alert: fix segfault when alerts separated out from eve-log.
Tom DeCanio [Tue, 12 Jan 2016 19:25:47 +0000 (11:25 -0800)] 
output-json-alert: fix segfault when alerts separated out from eve-log.

9 years agooutput-json-http: Add JSON support for X-Flash-Version.
Tom DeCanio [Thu, 25 Feb 2016 01:15:09 +0000 (17:15 -0800)] 
output-json-http: Add JSON support for X-Flash-Version.
Supported as a custom field.

9 years agoAdd JSON support for X-Authenticated-User. Supported as a custom field.
Tom DeCanio [Tue, 1 Sep 2015 23:09:26 +0000 (16:09 -0700)] 
Add JSON support for X-Authenticated-User.  Supported as a custom field.

9 years agohttp: close file when http body limit is reached 1880/head
Giuseppe Longo [Wed, 24 Feb 2016 08:28:41 +0000 (09:28 +0100)] 
http: close file when http body limit is reached

In some conditions, if stream.reassembly.depth is greater than
request/response-body-limit size, the logging output is wrong
if filestore keyword is used with http.

For example, we get:
{... "app_proto":"http","fileinfo":{"filename":"\/file.pdf","state":"CLOSED","stored":false,"size":1049292,"tx_id":0}}

"state":"CLOSED","stored":false should be "state":"TRUNCATED","stored":true.

This happens because the file state and file flags,
which is the information that determine a correct output,
are not set properly since a file is logged before and then closed (HTPFileClose).

The logic of this patch is to close a file when we are above
the limits, such that the proper state and flags can be set
and the file will be logged correctly.

9 years agojson-drop-log: clean up memory at shutdown
Victor Julien [Wed, 24 Feb 2016 15:19:13 +0000 (16:19 +0100)] 
json-drop-log: clean up memory at shutdown