Fix gpe coverity issue (VPP-874) 90/7090/1
authorFlorin Coras <fcoras@cisco.com>
Fri, 9 Jun 2017 17:22:22 +0000 (10:22 -0700)
committerFlorin Coras <fcoras@cisco.com>
Fri, 9 Jun 2017 17:22:22 +0000 (10:22 -0700)
Change-Id: I70fb60619a0a02d891276ea6c7ac277ba2b26fa3
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/vnet/lisp-gpe/lisp_gpe_api.c

index 4df743c..cb18b4b 100644 (file)
@@ -466,7 +466,7 @@ static void
 
 static void
 gpe_native_fwd_rpaths_copy (vl_api_gpe_native_fwd_rpath_t * dst,
-                           fib_route_path_t * src)
+                           fib_route_path_t * src, u8 is_ip4)
 {
   fib_route_path_t *e;
   u32 i = 0;
@@ -474,7 +474,11 @@ gpe_native_fwd_rpaths_copy (vl_api_gpe_native_fwd_rpath_t * dst,
   vec_foreach (e, src)
   {
     memset (&dst[i], 0, sizeof (*dst));
-    clib_memcpy (&dst[i], e, sizeof (fib_route_path_t *));
+    dst[i].fib_index = e->frp_fib_index;
+    dst[i].nh_sw_if_index = e->frp_sw_if_index;
+    dst[i].is_ip4 = is_ip4;
+    clib_memcpy (&dst[i].nh_addr, &e->frp_addr,
+                is_ip4 ? sizeof (ip4_address_t) : sizeof (ip6_address_t));
   }
 }
 
@@ -517,7 +521,8 @@ vl_api_gpe_native_fwd_rpaths_get_t_handler (vl_api_gpe_native_fwd_rpaths_get_t
   {
     rmp->count = vec_len (lgm->native_fwd_rpath[mp->is_ip4]);
     gpe_native_fwd_rpaths_copy (rmp->entries,
-                               lgm->native_fwd_rpath[mp->is_ip4]);
+                               lgm->native_fwd_rpath[mp->is_ip4],
+                               mp->is_ip4);
     gpe_native_fwd_rpaths_get_reply_t_host_to_net (rmp);
   });
   /* *INDENT-ON* */