From bb4def7949e04322f5ae254683494b258f128cfa Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 27 Feb 2014 10:59:50 +0100 Subject: [PATCH] lua: fix minor memory leak 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 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/detect-luajit.c b/src/detect-luajit.c index d5452381f9..bbd710af08 100644 --- a/src/detect-luajit.c +++ b/src/detect-luajit.c @@ -925,6 +925,8 @@ static void DetectLuajitFree(void *ptr) { if (luajit->buffername) SCFree(luajit->buffername); + if (luajit->filename) + SCFree(luajit->filename); SCFree(luajit); }