devices: fix the coverity warnings for af-packet v3

Type: fix

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: Ie647fb280831af23925c4b5f659f1dade6d37eff
diff --git a/src/vnet/devices/af_packet/af_packet.c b/src/vnet/devices/af_packet/af_packet.c
index ac6fc05..b84f5cd 100644
--- a/src/vnet/devices/af_packet/af_packet.c
+++ b/src/vnet/devices/af_packet/af_packet.c
@@ -401,15 +401,18 @@
       tx_req = tx_queue->tx_req;
     }
 
-  ret = create_packet_v3_sock (apif->host_if_index, rx_req, tx_req, &fd, &ring,
-			       &hdrlen, &is_cksum_gso_enabled,
-			       apif->dev_instance, is_fanout);
+  if (rx_queue || tx_queue)
+    {
+      ret = create_packet_v3_sock (apif->host_if_index, rx_req, tx_req, &fd,
+				   &ring, &hdrlen, &is_cksum_gso_enabled,
+				   apif->dev_instance, is_fanout);
 
-  if (ret != 0)
-    goto error;
+      if (ret != 0)
+	goto error;
 
-  vec_add1 (apif->rings, ring);
-  ring_addr = ring.ring_start_addr;
+      vec_add1 (apif->rings, ring);
+      ring_addr = ring.ring_start_addr;
+    }
 
   if (rx_queue)
     {
@@ -452,8 +455,10 @@
   return 0;
 error:
   vlib_log_err (apm->log_class, "Failed to set queue %u error", queue_id);
-  vec_free (rx_queue->rx_req);
-  vec_free (tx_queue->tx_req);
+  if (rx_queue)
+    vec_free (rx_queue->rx_req);
+  if (tx_queue)
+    vec_free (tx_queue->tx_req);
   return ret;
 }