]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
lua: fix minor memory leak
authorVictor Julien <victor@inliniac.net>
Thu, 27 Feb 2014 09:59:50 +0000 (10:59 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 27 Feb 2014 13:27:44 +0000 (14:27 +0100)
The full path of the script names is stored in a buffer that wasn't
freed at exit.

==24195== 41 bytes in 1 blocks are definitely lost in loss record 300 of 613
==24195==    at 0x4C2A2DB: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24195==    by 0x565D06: DetectLoadCompleteSigPath (detect.c:251)
==24195==    by 0x7CABE8: DetectLuajitParse (detect-luajit.c:595)
==24195==    by 0x7CD2AE: DetectLuajitSetup (detect-luajit.c:827)
==24195==    by 0x7DC273: SigParseOptions (detect-parse.c:547)
==24195==    by 0x7DDC75: SigParse (detect-parse.c:856)
==24195==    by 0x7E1C2B: SigInitHelper (detect-parse.c:1336)
==24195==    by 0x7E2968: SigInit (detect-parse.c:1559)
==24195==    by 0x7E37B1: DetectEngineAppendSig (detect-parse.c:1831)
==24195==    by 0x566D17: DetectLoadSigFile (detect.c:335)
==24195==    by 0x567636: SigLoadSignatures (detect.c:423)
==24195==    by 0x951A97: LoadSignatures (suricata.c:1816)

This patch frees the buffer.

src/detect-luajit.c

index d5452381f9b07eb5cd48cd1a035d2170f01dfae0..bbd710af08ad666e7d3ab9a0ff86350b190df07e 100644 (file)
@@ -925,6 +925,8 @@ static void DetectLuajitFree(void *ptr) {
 
         if (luajit->buffername)
             SCFree(luajit->buffername);
+        if (luajit->filename)
+            SCFree(luajit->filename);
 
         SCFree(luajit);
     }