[dpdk-dev,14/18] drivers: net: vdev: fix 3 x strncpy misuse
Checks
Commit Message
---
drivers/net/vdev_netvsc/vdev_netvsc.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
@@ -182,7 +182,8 @@ vdev_netvsc_foreach_iface(int (*func)(const struct if_nameindex *iface,
is_netvsc_ret = vdev_netvsc_iface_is_netvsc(&iface[i]) ? 1 : 0;
if (is_netvsc ^ is_netvsc_ret)
continue;
- strncpy(req.ifr_name, iface[i].if_name, sizeof(req.ifr_name));
+ strncpy(req.ifr_name, iface[i].if_name, sizeof(req.ifr_name) - 1);
+ req.ifr_name[sizeof(req.ifr_name) - 1] = '\0';
if (ioctl(s, SIOCGIFHWADDR, &req) == -1) {
DRV_LOG(WARNING, "cannot retrieve information about"
" interface \"%s\": %s",
@@ -383,7 +384,8 @@ vdev_netvsc_device_probe(const struct if_nameindex *iface,
DRV_LOG(DEBUG,
"NetVSC interface \"%s\" (index %u) renamed \"%s\"",
ctx->if_name, ctx->if_index, iface->if_name);
- strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));
+ strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name) - 1);
+ ctx->if_name[sizeof(ctx->if_name) - 1] = '\0';
return 0;
}
if (!is_same_ether_addr(eth_addr, &ctx->if_addr))
@@ -581,7 +583,8 @@ vdev_netvsc_netvsc_probe(const struct if_nameindex *iface,
goto error;
}
ctx->id = vdev_netvsc_ctx_count;
- strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name));
+ strncpy(ctx->if_name, iface->if_name, sizeof(ctx->if_name) - 1);
+ ctx->if_name[sizeof(ctx->if_name) - 1] = '\0';
ctx->if_index = iface->if_index;
ctx->if_addr = *eth_addr;
ctx->pipe[0] = -1;