]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
http-json: init 'fields' to 0 before setting it
authorVictor Julien <victor@inliniac.net>
Fri, 2 May 2014 09:01:18 +0000 (11:01 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 2 May 2014 09:01:18 +0000 (11:01 +0200)
httplog_ctx->fields would not be initialized before setting flags in
it:

Scanbuild:
output-json-http.c:491:46: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
                            http_ctx->fields |= (1<<f);
                            ~~~~~~~~~~~~~~~~ ^
1 warning generated.

Drmemory:
~~27874~~ Error #1: UNINITIALIZED READ: reading register eax
~~27874~~ # 0 JsonHttpLogJSON                       [/home/buildbot/qa/buildbot/donkey/drmemory/Suricata/src/output-json-http.c:260]
~~27874~~ # 1 JsonHttpLogger                        [/home/buildbot/qa/buildbot/donkey/drmemory/Suricata/src/output-json-http.c:375]

Just memset the whole structure right after initialition.

src/output-json-http.c

index 5086997eea751dda58fc4f5e2fa026518c1a0fc7..2300742073029ae0846ed430b9a172c29edb618a 100644 (file)
@@ -454,6 +454,7 @@ OutputCtx *OutputHttpLogInitSub(ConfNode *conf, OutputCtx *parent_ctx)
     LogHttpFileCtx *http_ctx = SCMalloc(sizeof(LogHttpFileCtx));
     if (unlikely(http_ctx == NULL))
         return NULL;
+    memset(http_ctx, 0x00, sizeof(*http_ctx));
 
     OutputCtx *output_ctx = SCCalloc(1, sizeof(OutputCtx));
     if (unlikely(output_ctx == NULL)) {