]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
fix NULL string into JSON in alert-json
authorTom DeCanio <decanio.tom@gmail.com>
Wed, 12 Jun 2013 18:04:11 +0000 (11:04 -0700)
committerVictor Julien <victor@inliniac.net>
Wed, 29 Jan 2014 10:07:50 +0000 (11:07 +0100)
src/alert-json.c

index d5b69e3ac221f220338aba1ab87b3cbd4d20db42..e81d32e43212cf3ecb712b8ee59a3ef7d445434f 100644 (file)
@@ -197,7 +197,10 @@ TmEcode AlertJsonIPv4(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
         } else {
             snprintf(proto, sizeof(proto), "PROTO:%03" PRIu32, IPV4_GET_IPPROTO(p));
         }
-        js = json_pack("{"
+        json_error_t error;
+        js = json_pack_ex(
+                       &error, 0,
+                       "{"
                        "ss"
                        "ss"
                        "si"
@@ -216,8 +219,8 @@ TmEcode AlertJsonIPv4(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
                        "gid", pa->s->gid,
                        "id", pa->s->id,
                        "rev", pa->s->rev,
-                       "msg", pa->s->msg,
-                       "class", pa->s->class_msg,
+                       "msg", (pa->s->msg) ? pa->s->msg : "",
+                       "class", (pa->s->class_msg) ? pa->s->class_msg : "",
                        "pri", pa->s->prio,
                        "proto", proto,
                        "srcip", srcip,
@@ -226,8 +229,10 @@ TmEcode AlertJsonIPv4(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
                        "dp", p->dp
                       );
 
-        if (js == NULL)
-            return TM_ECODE_FAILED;
+        if (js == NULL) {
+            SCLogInfo("json_pack error %s", error.text);
+            return TM_ECODE_OK;
+        }
 
         SCMutexLock(&aft->file_ctx->fp_mutex);
         if (json_out == ALERT_FILE) {
@@ -287,7 +292,10 @@ TmEcode AlertJsonIPv6(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
         } else {
             snprintf(proto, sizeof(proto), "PROTO:%03" PRIu32, IP_GET_IPPROTO(p));
         }
-        js = json_pack("{"
+        json_error_t error;
+        js = json_pack_ex(
+                       &error, 0,
+                       "{"
                        "ss"
                        "ss"
                        "si"
@@ -306,8 +314,8 @@ TmEcode AlertJsonIPv6(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
                        "gid", pa->s->gid,
                        "id", pa->s->id,
                        "rev", pa->s->rev,
-                       "msg", pa->s->msg,
-                       "class", pa->s->class_msg,
+                       "msg", (pa->s->msg) ? pa->s->msg : "",
+                       "class", (pa->s->class_msg) ? pa->s->class_msg : "",
                        "pri", pa->s->prio,
                        "proto", proto,
                        "srcip", srcip,
@@ -316,8 +324,10 @@ TmEcode AlertJsonIPv6(ThreadVars *tv, Packet *p, void *data, PacketQueue *pq, Pa
                        "dp", p->dp
                       );
 
-        if (js == NULL)
-            return TM_ECODE_FAILED;
+        if (js == NULL) {
+            SCLogInfo("json_pack error %s", error.text);
+            return TM_ECODE_OK;
+        }
 
         SCMutexLock(&aft->file_ctx->fp_mutex);
         if (json_out == ALERT_FILE) {
@@ -371,7 +381,10 @@ TmEcode AlertJsonDecoderEvent(ThreadVars *tv, Packet *p, void *data, PacketQueue
         char buf[(32 * 3) + 1];
         PrintRawLineHexBuf(buf, sizeof(buf), GET_PKT_DATA(p), GET_PKT_LEN(p) < 32 ? GET_PKT_LEN(p) : 32);
 
-        js = json_pack("{"
+        json_error_t error;
+        js = json_pack_ex(
+                       &error, 0,
+                       "{"
                        "ss"
                        "ss"
                        "si"
@@ -386,14 +399,16 @@ TmEcode AlertJsonDecoderEvent(ThreadVars *tv, Packet *p, void *data, PacketQueue
                        "gid", pa->s->gid,
                        "id", pa->s->id,
                        "rev", pa->s->rev,
-                       "msg", pa->s->msg,
-                       "class", pa->s->class_msg,
+                       "msg", (pa->s->msg) ? pa->s->msg : "",
+                       "class", (pa->s->class_msg) ? pa->s->class_msg : "",
                        "pri", pa->s->prio,
                        "pkt", buf
                       );
 
-        if (js == NULL)
-            return TM_ECODE_FAILED;
+        if (js == NULL) {
+            SCLogInfo("json_pack error %s", error.text);
+            return TM_ECODE_OK;
+        }
 
         SCMutexLock(&aft->file_ctx->fp_mutex);
         if (json_out == ALERT_FILE) {