gcc8 and Wstringop-truncation

gcc8 introduced a new warning (Wstringop-truncation) which in our case
is being treated as error.
Disabling the warning globally might introduce bugs related to string
truncation which are not desired by the developer (e.g. bug).
Instead, this patch disables the warning only for those occurences
which have been verified to be non-bugs but the desired behaviour as per
developer will.

Change-Id: I0f04ff6b4fad44061e80a65af633fd7e0148a0c5
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
(cherry picked from commit 99d7a72cbc)
This commit is contained in:
Marco Varlese
2018-06-27 09:54:44 +02:00
committed by Chris Luke
parent 6bb589c8ac
commit ca7a68e0fb
4 changed files with 13 additions and 9 deletions

View File

@ -130,7 +130,7 @@ void
if (len > 0)
{
vec_validate (socket_filename, len);
strncpy ((char *) socket_filename, (char *) mp->socket_filename, len);
memcpy (socket_filename, mp->socket_filename, len);
}
rv = memif_socket_filename_add_del (is_add, socket_id, socket_filename);

View File

@ -442,7 +442,8 @@ vlib_pci_bind_to_uio (vlib_pci_addr_t * addr, char *uio_drv_name)
memset (&ifr, 0, sizeof ifr);
memset (&drvinfo, 0, sizeof drvinfo);
ifr.ifr_data = (char *) &drvinfo;
strncpy (ifr.ifr_name, e->d_name, IFNAMSIZ - 1);
strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name));
ifr.ifr_name[ARRAY_LEN (ifr.ifr_name) - 1] = '\0';
drvinfo.cmd = ETHTOOL_GDRVINFO;
if (ioctl (fd, SIOCETHTOOL, &ifr) < 0)
{
@ -457,7 +458,8 @@ vlib_pci_bind_to_uio (vlib_pci_addr_t * addr, char *uio_drv_name)
continue;
memset (&ifr, 0, sizeof (ifr));
strncpy (ifr.ifr_name, e->d_name, IFNAMSIZ - 1);
strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name));
ifr.ifr_name[ARRAY_LEN (ifr.ifr_name) - 1] = '\0';
if (ioctl (fd, SIOCGIFFLAGS, &ifr) < 0)
{
error = clib_error_return_unix (0, "ioctl fetch intf %s flags",

View File

@ -109,9 +109,8 @@ vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t * mp)
if (am->msg_range_by_name == 0)
goto out;
strncpy ((char *) name, (char *) mp->name, ARRAY_LEN (name) - 1);
strncpy ((char *) name, (char *) mp->name, ARRAY_LEN (name));
name[ARRAY_LEN (name) - 1] = '\0';
p = hash_get_mem (am->msg_range_by_name, name);
if (p == 0)
goto out;
@ -157,7 +156,10 @@ vl_api_api_versions_t_handler (vl_api_api_versions_t * mp)
rmp->api_versions[i].major = htonl (vl->major);
rmp->api_versions[i].minor = htonl (vl->minor);
rmp->api_versions[i].patch = htonl (vl->patch);
strncpy ((char *) rmp->api_versions[i].name, vl->name, 64 - 1);
strncpy ((char *) rmp->api_versions[i].name, vl->name,
ARRAY_LEN (rmp->api_versions[i].name));
rmp->api_versions[i].name[ARRAY_LEN (rmp->api_versions[i].name) - 1] =
'\0';
}
vl_api_send_msg (reg, (u8 *) rmp);

View File

@ -3191,8 +3191,8 @@ vhost_user_dump_ifs (vnet_main_t * vnm, vlib_main_t * vm,
vuid->is_server = vui->unix_server_index != ~0;
vuid->sock_errno = vui->sock_errno;
strncpy ((char *) vuid->sock_filename, (char *) vui->sock_filename,
ARRAY_LEN (vuid->sock_filename) - 1);
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,