From ad8c3353b8e482575ff2208182290cf35b624dde Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 5 Jun 2019 09:08:39 -0700
Subject: [PATCH 1/1] Coverity scan fixes

---
 iscsiuio/src/unix/libs/qedi.c |  2 +-
 iscsiuio/src/unix/main.c      |  3 +++
 libopeniscsiusr/idbm.c        | 11 +++++------
 usr/idbm.c                    | 10 ++++------
 usr/initiator.c               |  2 +-
 usr/iscsid.c                  |  2 +-
 6 files changed, 15 insertions(+), 15 deletions(-)

--- a/iscsiuio/src/unix/libs/qedi.c
+++ b/iscsiuio/src/unix/libs/qedi.c
@@ -1030,7 +1030,7 @@ static int qedi_read(nic_t *nic, packet_
 
 	LOG_DEBUG(PFX "%s:hw_prod %d bd_prod %d, rx_pkt_idx %d, rxlen %d",
 		  nic->log_name, hw_prod, bd_prod, rx_bd->rx_pkt_index, len);
-	LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %d",
+	LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %lu",
 		  nic->log_name, sw_cons, bd_cons, QEDI_NUM_RX_BD);
 
 	if (bd_cons != bd_prod) {
--- a/iscsiuio/src/unix/main.c
+++ b/iscsiuio/src/unix/main.c
@@ -391,6 +391,9 @@ int main(int argc, char *argv[])
 	sigaddset(&set, SIGTERM);
 	sigaddset(&set, SIGUSR1);
 	rc = pthread_sigmask(SIG_SETMASK, &set, NULL);
+	if (rc != 0) {
+		LOG_ERR("Failed to set thread signal mask");
+	}
 
 	/*  Spin off the signal handling thread */
 	pthread_attr_init(&attr);
--- a/libopeniscsiusr/idbm.c
+++ b/libopeniscsiusr/idbm.c
@@ -321,12 +321,11 @@ int _idbm_lock(struct iscsi_context *ctx
 		return 0;
 	}
 
-	if (access(LOCK_DIR, F_OK) != 0) {
-		if (mkdir(LOCK_DIR, 0660) != 0) {
-			_error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno,
-				_strerror(errno, strerr_buff));
-			return LIBISCSI_ERR_IDBM;
-		}
+	if (((mkdir(LOCK_DIR, 0660) != 0) && (errno != EEXIST)) ||
+	    (access(LOCK_DIR, F_OK) != 0)) {
+		_error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno,
+			_strerror(errno, strerr_buff));
+		return LIBISCSI_ERR_IDBM;
 	}
 
 	fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666);
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -1439,12 +1439,10 @@ int idbm_lock(void)
 		return 0;
 	}
 
-	if (access(LOCK_DIR, F_OK) != 0) {
-		if (mkdir(LOCK_DIR, 0660) != 0) {
-			log_error("Could not open %s: %s", LOCK_DIR,
-				  strerror(errno));
-			return ISCSI_ERR_IDBM;
-		}
+	if (((mkdir(LOCK_DIR, 0660) != 0) && (errno != EEXIST)) ||
+	    (access(LOCK_DIR, F_OK) != 0)) {
+		log_error("Could not open %s: %s", LOCK_DIR, strerror(errno));
+		return ISCSI_ERR_IDBM;
 	}
 
 	fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666);
--- a/usr/iscsid.c
+++ b/usr/iscsid.c
@@ -495,8 +495,8 @@ int main(int argc, char *argv[])
 				log_close(log_pid);
 				exit(ISCSI_ERR);
 			}
+			close(fd);
 		}
-		close(fd);
 
 		if ((control_fd = ipc->ctldev_open()) < 0) {
 			log_close(log_pid);
--- a/usr/initiator.c
+++ b/usr/initiator.c
@@ -580,7 +580,7 @@ __session_conn_reopen(iscsi_conn_t *conn
 		      int redirected)
 {
 	iscsi_session_t *session = conn->session;
-	uint32_t delay;
+	uint32_t delay = 0;
 
 	log_debug(1, "re-opening session %d (reopen_cnt %d)", session->id,
 			session->reopen_cnt);
