devices: vhost: simplify string copies for GCC-10 86/26686/2
authorBenoît Ganne <bganne@cisco.com>
Fri, 24 Apr 2020 08:33:40 +0000 (10:33 +0200)
committerNeale Ranns <nranns@cisco.com>
Wed, 29 Apr 2020 15:18:52 +0000 (15:18 +0000)
GCC-10 increases string truncations warnings. Refactor string copies
confusing it.

Type: refactor

Change-Id: I9720a0539059de00ab212ff2fc73055f04f5af1d
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/vnet/devices/virtio/vhost_user.c

index d24e516..1883f86 100644 (file)
@@ -1819,7 +1819,6 @@ vhost_user_dump_ifs (vnet_main_t * vnm, vlib_main_t * vm,
   vhost_user_intf_details_t *vuid = NULL;
   u32 *hw_if_indices = 0;
   vnet_hw_interface_t *hi;
-  u8 *s = NULL;
   int i;
 
   if (!out_vuids)
@@ -1841,17 +1840,13 @@ vhost_user_dump_ifs (vnet_main_t * vnm, vlib_main_t * vm,
       vuid->num_regions = vui->nregions;
       vuid->is_server = vui->unix_server_index != ~0;
       vuid->sock_errno = vui->sock_errno;
-      strncpy ((char *) vuid->sock_filename, (char *) vui->sock_filename,
-              sizeof (vuid->sock_filename));
-      vuid->sock_filename[ARRAY_LEN (vuid->sock_filename) - 1] = '\0';
-      s = format (s, "%v%c", hi->name, 0);
-
-      strncpy ((char *) vuid->if_name, (char *) s,
-              ARRAY_LEN (vuid->if_name) - 1);
-      _vec_len (s) = 0;
+      snprintf ((char *) vuid->sock_filename, sizeof (vuid->sock_filename),
+               "%s", vui->sock_filename);
+      memcpy_s (vuid->if_name, sizeof (vuid->if_name), hi->name,
+               clib_min (vec_len (hi->name), sizeof (vuid->if_name) - 1));
+      vuid->if_name[sizeof (vuid->if_name) - 1] = 0;
     }
 
-  vec_free (s);
   vec_free (hw_if_indices);
 
   *out_vuids = r_vuids;