From: Victor Julien Date: Wed, 4 Jun 2014 15:11:29 +0000 (+0200) Subject: Fix Coverity 1220098 and 1220099 X-Git-Tag: suricata-2.0.2~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F981%2Fhead;p=thirdparty%2Fsuricata.git 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] = ""; --- 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] = "";