]> git.ipfire.org Git - people/ms/suricata.git/commitdiff
eve/ftp: don't alloc memory to log filename
authorVictor Julien <victor@inliniac.net>
Wed, 12 Dec 2018 18:57:14 +0000 (19:57 +0100)
committerVictor Julien <victor@inliniac.net>
Wed, 20 Feb 2019 13:45:18 +0000 (14:45 +0100)
src/app-layer-ftp.c

index d3931a863dcd469b84d3afca2e98e4acc5044732..c36f561a772d4f1c7607cb27c2d12a4ffe5071a1 100644 (file)
@@ -61,6 +61,8 @@
 #include "rust-ftp-mod-gen.h"
 #endif
 
+#include "output-json.h"
+
 uint64_t ftp_config_memcap = 0;
 
 SC_ATOMIC_DECLARE(uint64_t, ftp_memuse);
@@ -995,10 +997,10 @@ json_t *JsonFTPDataAddMetadata(const Flow *f)
     if (ftpd == NULL)
         return NULL;
     if (ftp_state->file_name) {
-        char *s = BytesToString(ftp_state->file_name, ftp_state->file_len);
-        json_object_set_new(ftpd, "filename", json_string(s));
-        if (s != NULL)
-            SCFree(s);
+        size_t size = ftp_state->file_len * 2 + 1;
+        char string[size];
+        BytesToStringBuffer(ftp_state->file_name, ftp_state->file_len, string, size);
+        json_object_set_new(ftpd, "filename", SCJsonString(string));
     }
     switch (ftp_state->command) {
         case FTP_COMMAND_STOR: