Mqtt was not setting up a per-thread file context for logging
in threaded mode, leading a crash when used in threaded mode.
Redmine issue:
https://redmine.openinfosecfoundation.org/issues/4404
(cherry picked from commit
64330498f842386cc1f1cdec0409959b5565496f)
LogMQTTFileCtx *mqttlog_ctx;
uint32_t count;
MemBuffer *buffer;
+ LogFileCtx *file_ctx;
} LogMQTTLogThread;
bool JsonMQTTAddMetadata(const Flow *f, uint64_t tx_id, JsonBuilder *js)
goto error;
MemBufferReset(thread->buffer);
- OutputJsonBuilderBuffer(js, thread->mqttlog_ctx->file_ctx, &thread->buffer);
+ OutputJsonBuilderBuffer(js, thread->file_ctx, &thread->buffer);
jb_free(js);
return TM_ECODE_OK;
}
thread->mqttlog_ctx = ((OutputCtx *)initdata)->data;
+ thread->file_ctx = LogFileEnsureExists(thread->mqttlog_ctx->file_ctx, t->id);
+
*data = (void *)thread;
return TM_ECODE_OK;