From 2c20c9d409737b8be1ab75261662ba2a59c94497 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 4 Jun 2014 17:11:29 +0200 Subject: [PATCH] Fix Coverity 1220098 and 1220099 *** CID 1220098: Missing unlock (LOCK) /src/log-droplog.c: 195 in LogDropLogNetFilter() 189 SCMutexLock(&dlt->file_ctx->fp_mutex); 190 191 if (dlt->file_ctx->rotation_flag) { 192 dlt->file_ctx->rotation_flag = 0; 193 if (SCConfLogReopen(dlt->file_ctx) != 0) { 194 /* Rotation failed, error already logged. */ >>> CID 1220098: Missing unlock (LOCK) >>> Returning without unlocking "dlt->file_ctx->fp_mutex". 195 return TM_ECODE_FAILED; 196 } 197 } 198 199 if (dlt->file_ctx == NULL) { 200 return TM_ECODE_FAILED; *** CID 1220099: Dereference before null check (REVERSE_INULL) /src/log-droplog.c: 199 in LogDropLogNetFilter() 193 if (SCConfLogReopen(dlt->file_ctx) != 0) { 194 /* Rotation failed, error already logged. */ 195 return TM_ECODE_FAILED; 196 } 197 } 198 >>> CID 1220099: Dereference before null check (REVERSE_INULL) >>> Null-checking "dlt->file_ctx" suggests that it may be null, but it has already been dereferenced on all paths leading to the check. 199 if (dlt->file_ctx == NULL) { 200 return TM_ECODE_FAILED; 201 } 202 203 char srcip[46] = ""; 204 char dstip[46] = ""; --- src/log-droplog.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/log-droplog.c b/src/log-droplog.c index 5a50d89b55..74a81fb52c 100644 --- a/src/log-droplog.c +++ b/src/log-droplog.c @@ -192,14 +192,11 @@ static int LogDropLogNetFilter (ThreadVars *tv, const Packet *p, void *data) dlt->file_ctx->rotation_flag = 0; if (SCConfLogReopen(dlt->file_ctx) != 0) { /* Rotation failed, error already logged. */ + SCMutexUnlock(&dlt->file_ctx->fp_mutex); return TM_ECODE_FAILED; } } - if (dlt->file_ctx == NULL) { - return TM_ECODE_FAILED; - } - char srcip[46] = ""; char dstip[46] = "";