[dpdk-dev] [PATCH] net/ark: fix for Coverity issues

John Miller john.miller at atomicrules.com
Thu May 11 13:02:28 CEST 2017


Fixes: 9c7188a68d7b ("net/ark: provide API for hardware modules pktchkr and pktgen")
Coverity issue: 144513

Fixes: 727b3fe292bc ("net/ark: integrate PMD")
Coverity issue: 144514

Fixes: 9c7188a68d7b ("net/ark: provide API for hardware modules pktchkr and pktgen")
Coverity issue: 144512

Fixes: 1131cbf0fb2b ("net/ark: stub PMD for Atomic Rules Arkville")
Coverity issue: 144517

Fixes: 727b3fe292bc ("net/ark: integrate PMD")
Coverity issue: 144520

Signed-off-by: John Miller <john.miller at atomicrules.com>
---
 drivers/net/ark/ark_ethdev.c  | 18 ++++++++++++------
 drivers/net/ark/ark_pktchkr.c |  3 ++-
 drivers/net/ark/ark_pktgen.c  |  3 ++-
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index 995c93d..5f00a02 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -516,11 +516,7 @@ static void eth_ark_macaddr_remove(struct rte_eth_dev *dev,
 	dev->dev_ops = NULL;
 	dev->rx_pkt_burst = NULL;
 	dev->tx_pkt_burst = NULL;
-	if (dev->data->mac_addrs)
-		rte_free(dev->data->mac_addrs);
-	if (dev->data)
-		rte_free(dev->data);
-
+	rte_free(dev->data->mac_addrs);
 	return 0;
 }
 
@@ -588,7 +584,11 @@ static void eth_ark_macaddr_remove(struct rte_eth_dev *dev,
 		/* Delay packet generatpr start allow the hardware to be ready
 		 * This is only used for sanity checking with internal generator
 		 */
-		pthread_create(&thread, NULL, delay_pg_start, ark);
+		if (pthread_create(&thread, NULL, delay_pg_start, ark)) {
+			PMD_DRV_LOG(ERR, "Could not create pktgen "
+				    "starter thread\n");
+			return -1;
+		}
 	}
 
 	if (ark->user_ext.dev_start)
@@ -899,6 +899,12 @@ static void eth_ark_macaddr_remove(struct rte_eth_dev *dev,
 	int  size = 0;
 	int first = 1;
 
+	if (file == NULL) {
+		PMD_DRV_LOG(ERR, "Unable to open, "
+			    "config file %s\n", value);
+		return -1;
+	}
+
 	while (fgets(line, sizeof(line), file)) {
 		size += strlen(line);
 		if (size >= ARK_MAX_ARG_LEN) {
diff --git a/drivers/net/ark/ark_pktchkr.c b/drivers/net/ark/ark_pktchkr.c
index 62b3673..e933026 100644
--- a/drivers/net/ark/ark_pktchkr.c
+++ b/drivers/net/ark/ark_pktchkr.c
@@ -372,7 +372,8 @@ struct OPTIONS {
 			o->v.INT = atoll(val);
 			break;
 		case OTSTRING:
-			strncpy(o->v.STR, val, ARK_MAX_STR_LEN);
+			strncpy(o->v.STR, val, ARK_MAX_STR_LEN - 1);
+			o->v.STR[ARK_MAX_STR_LEN - 1] = 0;
 			break;
 		}
 		return 1;
diff --git a/drivers/net/ark/ark_pktgen.c b/drivers/net/ark/ark_pktgen.c
index bdac054..7308f14 100644
--- a/drivers/net/ark/ark_pktgen.c
+++ b/drivers/net/ark/ark_pktgen.c
@@ -354,7 +354,8 @@ struct OPTIONS {
 			o->v.INT = atoll(val);
 			break;
 		case OTSTRING:
-			strncpy(o->v.STR, val, ARK_MAX_STR_LEN);
+			strncpy(o->v.STR, val, ARK_MAX_STR_LEN - 1);
+			o->v.STR[ARK_MAX_STR_LEN - 1] = 0;
 			break;
 		}
 		return 1;
-- 
1.9.1



More information about the dev mailing list