VPP-189 Fix coverity warnings 23/2323/1
authorDave Barach <dave@barachs.net>
Wed, 10 Aug 2016 20:56:16 +0000 (16:56 -0400)
committerDave Barach <dave@barachs.net>
Wed, 10 Aug 2016 20:56:32 +0000 (16:56 -0400)
Change-Id: Iea6d338e60a95f7f30c10c2e751d4827e816f700
Signed-off-by: Dave Barach <dave@barachs.net>
vlib/vlib/unix/mc_socket.c
vnet/vnet/devices/dpdk/cli.c
vnet/vnet/devices/dpdk/device.c
vnet/vnet/devices/dpdk/format.c
vnet/vnet/devices/dpdk/init.c
vnet/vnet/devices/netmap/device.c
vnet/vnet/devices/netmap/node.c
vnet/vnet/l2/l2_input_acl.c
vppinfra/vppinfra/hash.c
vppinfra/vppinfra/sparse_vec.h

index 2754b30..9c12ad3 100644 (file)
@@ -948,6 +948,7 @@ find_interface_ip4_address (char *if_name, u32 * ip4_address, u32 * mtu)
   if (ioctl (fd, SIOCGIFADDR, &ifr) < 0)
     {
       clib_unix_error ("ioctl(SIOCFIGADDR)");
+      close (fd);
       return -1;
     }
 
index c449eeb..a40dcc7 100644 (file)
@@ -332,7 +332,7 @@ show_efd (vlib_main_t * vm,
         dpdk_device_t * xd;
         u32 device_id = ~0;
 
-        unformat(input, "device %d", &device_id);
+        (void) unformat(input, "device %d", &device_id);
         vec_foreach (xd, dm->devices) {
             if ((xd->device_index == device_id) || (device_id == ~0)) {
                 show_dpdk_device_stats(vm, xd);
index 66d4b6d..61774f0 100644 (file)
@@ -1028,7 +1028,11 @@ dpdk_interface_admin_up_down (vnet_main_t * vnm, u32 hw_if_index, u32 flags)
       else
       {
         xd->admin_up = 0;
-        rte_kni_release(xd->kni);
+        int kni_rv;
+
+        kni_rv = rte_kni_release(xd->kni);
+        if (kni_rv < 0)
+          clib_warning ("rte_kni_release returned %d", kni_rv);
       }
       return 0;
   }
index 4c55365..2d41221 100644 (file)
@@ -400,9 +400,12 @@ u8 * format_dpdk_device (u8 * s, va_list * args)
       struct rte_pci_device * pci;
       struct rte_eth_rss_conf rss_conf;
       int vlan_off;
+      int retval;
 
       rss_conf.rss_key = 0;
-      rte_eth_dev_rss_hash_conf_get(xd->device_index, &rss_conf);
+      retval = rte_eth_dev_rss_hash_conf_get(xd->device_index, &rss_conf);
+      if (retval < 0)
+          clib_warning ("rte_eth_dev_rss_hash_conf_get returned %d", retval);
       pci = di.pci_dev;
 
       if (pci)
index 1f4629d..b690dec 100644 (file)
@@ -119,7 +119,11 @@ dpdk_port_setup (dpdk_main_t * dm, dpdk_device_t * xd)
     }
 
   if (xd->admin_up) {
-    rte_eth_dev_start (xd->device_index);
+      int rv;
+      rv = rte_eth_dev_start (xd->device_index);
+      if (rv < 0)
+        clib_warning ("rte_eth_dev_start %d returned %d",
+                      xd->device_index, rv);
   }
   return 0;
 }
@@ -189,7 +193,12 @@ static u32 dpdk_flag_change (vnet_main_t * vnm,
           rte_eth_dev_set_mtu(xd->device_index, hi->max_packet_bytes);
 
          if (xd->admin_up)
-           rte_eth_dev_start (xd->device_index);
+            {
+              int rv = rte_eth_dev_start (xd->device_index);
+              if (rv < 0)
+                clib_warning ("rte_eth_dev_start %d returned %d",
+                              xd->device_index, rv);
+            }
        }
     }
   return old;
@@ -391,7 +400,8 @@ dpdk_lib_init (dpdk_main_t * dm)
       if (!xd->pmd) {
 
 
-#define _(s,f) else if (!strcmp(dev_info.driver_name, s)) \
+#define _(s,f) else if (dev_info.driver_name &&                 \
+                        !strcmp(dev_info.driver_name, s))       \
                  xd->pmd = VNET_DPDK_PMD_##f;
         if (0)
           ;
@@ -651,7 +661,7 @@ dpdk_lib_init (dpdk_main_t * dm)
 
       rv = dpdk_port_setup(dm, xd);
 
-      if (rv < 0)
+      if (rv)
         return rv;
 
       /* count the number of descriptors used for this device */
@@ -1199,6 +1209,12 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
          vec_free(p);
          vec_free(path);
       }));
+
+      if (mem_by_socket == 0)
+        {
+          error = clib_error_return (0, "mem_by_socket NULL");
+          goto done;
+        }
       _vec_len (mem_by_socket) = c + 1;
 
       /* regenerate socket_mem string */
index a133260..751caf7 100644 (file)
@@ -119,14 +119,15 @@ netmap_interface_tx (vlib_main_t * vm,
 
       if (nm_tx_pending(ring))
         {
-         ioctl(nif->fd, NIOCTXSYNC, NULL);
-         clib_cpu_time_wait(time_constant);
-
-         if (nm_tx_pending(ring) && !n_free_slots)
-           {
-             cur_ring++;
-             continue;
-           }
+          if (ioctl(nif->fd, NIOCTXSYNC, NULL) < 0)
+            clib_unix_warning ("NIOCTXSYNC");
+          clib_cpu_time_wait(time_constant);
+          
+          if (nm_tx_pending(ring) && !n_free_slots)
+            {
+              cur_ring++;
+              continue;
+            }
         }
 
       while (n_left && n_free_slots)
index 9378dfd..4a79fe0 100644 (file)
@@ -210,13 +210,17 @@ netmap_device_input_fn  (vlib_main_t * vm, vlib_node_runtime_t * node,
              VLIB_BUFFER_TRACE_TRAJECTORY_INIT(first_b0);
              if (PREDICT_FALSE(n_trace > 0))
                {
-                 netmap_input_trace_t *tr;
-                 vlib_trace_buffer (vm, node, next0, first_b0, /* follow_chain */ 0);
-                 vlib_set_trace_count (vm, node, --n_trace);
-                 tr = vlib_add_trace (vm, node, first_b0, sizeof (*tr));
-                 tr->next_index = next0;
-                 tr->hw_if_index = nif->hw_if_index;
-                 memcpy (&tr->slot, slot, sizeof (struct netmap_slot));
+                  if (PREDICT_TRUE(first_b0 != 0))
+                    {
+                      netmap_input_trace_t *tr;
+                      vlib_trace_buffer (vm, node, next0, first_b0, 
+                                         /* follow_chain */ 0);
+                      vlib_set_trace_count (vm, node, --n_trace);
+                      tr = vlib_add_trace (vm, node, first_b0, sizeof (*tr));
+                      tr->next_index = next0;
+                      tr->hw_if_index = nif->hw_if_index;
+                      memcpy (&tr->slot, slot, sizeof (struct netmap_slot));
+                    }
                }
              /* enque and take next packet */
              vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next,
index d3038e8..f8e77d7 100644 (file)
@@ -329,7 +329,7 @@ l2_inacl_node_fn (vlib_main_t * vm,
               t->sw_if_index = vnet_buffer(b0)->sw_if_index[VLIB_RX];
               t->next_index = next0;
               t->table_index = t0 ? t0 - vcm->tables : ~0;
-              t->offset = e0 ? vnet_classify_get_offset (t0, e0): ~0;
+              t->offset = (t0 && e0) ? vnet_classify_get_offset (t0, e0): ~0;
             }
 
           /* verify speculative enqueue, maybe switch current next frame */
index c4d7249..cbb922e 100644 (file)
@@ -391,8 +391,8 @@ set_indirect (void * v, hash_pair_indirect_t * pi, uword key,
       if (new_len * hash_pair_bytes (h) > (1ULL << log2_bytes))
        {
          pi->pairs = clib_mem_realloc (pi->pairs,
-                                       1 << (log2_bytes + 1),
-                                       1 << log2_bytes);
+                                       1ULL << (log2_bytes + 1),
+                                       1ULL << log2_bytes);
          log2_bytes++;
        }
 
index 08e97f3..bf18ebd 100644 (file)
@@ -87,7 +87,7 @@ sparse_vec_new (uword elt_bytes, uword sparse_index_bits)
   n = sparse_index_bits - min_log2 (BITS (uword));
   if (n < 0)
     n = 0;
-  n = 1 << n;
+  n = 1ULL << n;
   vec_resize (h->is_member_bitmap, n);
   vec_resize (h->member_counts, n);