BUG_ON(data == NULL);
ThreadLogFileHashEntry *thread_ent = (ThreadLogFileHashEntry *)data;
- if (thread_ent) {
+ if (!thread_ent)
+ return;
+
+ if (thread_ent->isopen) {
LogFileCtx *lf_ctx = thread_ent->ctx;
/* Free the leaf log file entries */
if (!lf_ctx->threaded) {
LogFileFreeCtx(lf_ctx);
}
- SCFree(thread_ent);
}
+ SCFree(thread_ent);
}
bool SCLogOpenThreadedFile(const char *log_path, const char *append, LogFileCtx *parent_ctx)
if (!parent_ctx->threaded)
return parent_ctx;
+ LogFileCtx *ret_ctx = NULL;
SCMutexLock(&parent_ctx->threads->mutex);
/* Find this thread's entry */
ThreadLogFileHashEntry *entry = LogFileThread2Slot(parent_ctx->threads, thread_id);
bool new = entry->isopen;
/* has it been opened yet? */
- if (!entry->isopen) {
+ if (!new) {
SCLogDebug("%s: Opening new file for thread/id %d to file %s [ctx %p]", t_thread_name,
thread_id, parent_ctx->filename, parent_ctx);
if (LogFileNewThreadedCtx(
parent_ctx, parent_ctx->filename, parent_ctx->threads->append, entry)) {
entry->isopen = true;
+ ret_ctx = entry->ctx;
} else {
SCLogError(
"Unable to open slot %d for file %s", entry->slot_number, parent_ctx->filename);
}
}
- return entry->ctx;
+ return ret_ctx;
}
/** \brief LogFileThreadedName() Create file name for threaded EVE storage