raw/octeontx2_ep: fix coverity scan reported defects

Message ID 1580131101-16945-1-git-send-email-mchalla@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series raw/octeontx2_ep: fix coverity scan reported defects |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation fail apply issues

Commit Message

Mahipal Challa Jan. 27, 2020, 1:18 p.m. UTC
  Defects reported by coverity scan are resolved.
Coverity issue: CID 353611 - Error handling.
Coverity issue: CID 353622 - Error handling.
Coverity issue: CID 353632 - NULL pointer dereference.

Signed-off-by: Mahipal Challa <mchalla@marvell.com>
---
 drivers/raw/octeontx2_ep/otx2_ep_enqdeq.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)
  

Comments

Thomas Monjalon Feb. 6, 2020, 3:51 p.m. UTC | #1
27/01/2020 14:18, Mahipal Challa:
> Defects reported by coverity scan are resolved.
> Coverity issue: CID 353611 - Error handling.
> Coverity issue: CID 353622 - Error handling.
> Coverity issue: CID 353632 - NULL pointer dereference.
> 
> Signed-off-by: Mahipal Challa <mchalla@marvell.com>

Applied, thanks
  

Patch

diff --git a/drivers/raw/octeontx2_ep/otx2_ep_enqdeq.c b/drivers/raw/octeontx2_ep/otx2_ep_enqdeq.c
index 1ba27c9..9f1e5ed 100644
--- a/drivers/raw/octeontx2_ep/otx2_ep_enqdeq.c
+++ b/drivers/raw/octeontx2_ep/otx2_ep_enqdeq.c
@@ -257,8 +257,8 @@ 
 	void *buf;
 
 	for (idx = 0; idx < droq->nb_desc; idx++) {
-		rte_mempool_get(sdpvf->enqdeq_mpool, &buf);
-		if (buf == NULL) {
+		if (rte_mempool_get(sdpvf->enqdeq_mpool, &buf) ||
+		    (buf == NULL)) {
 			otx2_err("OQ buffer alloc failed");
 			droq->stats.rx_alloc_failure++;
 			/* sdp_droq_destroy_ring_buffers(droq);*/
@@ -662,11 +662,11 @@ 
 		if (droq->recv_buf_list[droq->refill_idx].buffer != NULL)
 			break;
 
-		rte_mempool_get(sdpvf->enqdeq_mpool, &buf);
-		/* If a buffer could not be allocated, no point in
-		 * continuing
-		 */
-		if (buf == NULL) {
+		if (rte_mempool_get(sdpvf->enqdeq_mpool, &buf) ||
+		    (buf == NULL)) {
+			/* If a buffer could not be allocated, no point in
+			 * continuing
+			 */
 			droq->stats.rx_alloc_failure++;
 			break;
 		}
@@ -780,7 +780,7 @@ 
 	droq = sdpvf->droq[q_no];
 	if (!droq) {
 		otx2_err("Invalid droq[%d]", q_no);
-		goto deq_fail;
+		goto droq_err;
 	}
 
 	/* Grab the lock */
@@ -840,5 +840,7 @@ 
 
 deq_fail:
 	rte_spinlock_unlock(&droq->lock);
+
+droq_err:
 	return SDP_OQ_RECV_FAILED;
 }