Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jan 2021 23:20:48 GMT
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: e60a0db3b8c9 - main - sym(4): fix nits reported by Coverity
Message-ID:  <202101212320.10LNKmrL071840@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by marius:

URL: https://cgit.FreeBSD.org/src/commit/?id=e60a0db3b8c922f9bcd085f737508a9cb4eb7f29

commit e60a0db3b8c922f9bcd085f737508a9cb4eb7f29
Author:     Marius Strobl <marius@FreeBSD.org>
AuthorDate: 2021-01-21 22:34:19 +0000
Commit:     Marius Strobl <marius@FreeBSD.org>
CommitDate: 2021-01-21 23:18:39 +0000

    sym(4): fix nits reported by Coverity
    
    - In ___dma_getp(), remove dead code. [1]
    - In sym_sir_bad_scsi_status(), add missing FALLTHROUGH. [2]
    
    While at it:
    - For getbaddrcb(), remove __unused from the nseg argument as it's in
      fact used when compiling with INVARIANTS.
    - In sym_int_sir(), ensure in all branches that cp is not NULL before
      using it.
    
    Reported by:    Coverity
    CID:            1008861 [1], 114996 [2]
---
 sys/dev/sym/sym_hipd.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index 45a9452dbd81..f1c058f75c52 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -571,8 +571,7 @@ static void sym_mfree(void *ptr, int size, char *name)
  * BUS handle. A reverse table (hashed) is maintained for virtual
  * to BUS address translation.
  */
-static void getbaddrcb(void *arg, bus_dma_segment_t *segs, int nseg __unused,
-    int error)
+static void getbaddrcb(void *arg, bus_dma_segment_t *segs, int nseg, int error)
 {
 	bus_addr_t *baddr;
 
@@ -610,8 +609,6 @@ static m_addr_t ___dma_getp(m_pool_s *mp)
 		return (m_addr_t) vaddr;
 	}
 out_err:
-	if (baddr)
-		bus_dmamap_unload(mp->dmat, vbp->dmamap);
 	if (vaddr)
 		bus_dmamem_free(mp->dmat, vaddr, vbp->dmamap);
 	if (vbp)
@@ -4680,6 +4677,7 @@ static void sym_sir_bad_scsi_status(hcb_p np, ccb_p cp)
 			PRINT_ADDR(cp);
 			printf (s_status == S_BUSY ? "BUSY" : "QUEUE FULL\n");
 		}
+		/* FALLTHROUGH */
 	default:	/* S_INT, S_INT_COND_MET, S_CONFLICT */
 		sym_complete_error (np, cp);
 		break;
@@ -6003,6 +6001,8 @@ static void sym_int_sir (hcb_p np)
 	 *  or has been auto-sensed.
 	 */
 	case SIR_COMPLETE_ERROR:
+		if (!cp)
+			goto out;
 		sym_complete_error(np, cp);
 		return;
 	/*
@@ -6228,6 +6228,8 @@ static void sym_int_sir (hcb_p np)
 	 *  Target does not want answer message.
 	 */
 	case SIR_NEGO_PROTO:
+		if (!cp)
+			goto out;
 		sym_nego_default(np, tp, cp);
 		goto out;
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101212320.10LNKmrL071840>