Replace strncpy() with safer strlcpy() which always null-terminates.

Fixes: ca1418ce3910 ("common/mlx5: share device context object")
Fixes: 9e58a50c059f ("net/mlx5: fix interface name parameter definition")
Cc: [email protected]

Signed-off-by: Bruce Richardson <[email protected]>
---
 drivers/net/mlx5/mlx5.c                   | 8 ++++----
 drivers/net/mlx5/windows/mlx5_ethdev_os.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 61c26d1206..24fda18710 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1916,10 +1916,10 @@ mlx5_alloc_shared_dev_ctx(const struct 
mlx5_dev_spawn_data *spawn,
        sh->txpp.skew = sh->config.tx_skew;
        sh->refcnt = 1;
        sh->max_port = spawn->max_port;
-       strncpy(sh->ibdev_name, mlx5_os_get_ctx_device_name(sh->cdev->ctx),
-               sizeof(sh->ibdev_name) - 1);
-       strncpy(sh->ibdev_path, mlx5_os_get_ctx_device_path(sh->cdev->ctx),
-               sizeof(sh->ibdev_path) - 1);
+       strlcpy(sh->ibdev_name, mlx5_os_get_ctx_device_name(sh->cdev->ctx),
+               sizeof(sh->ibdev_name));
+       strlcpy(sh->ibdev_path, mlx5_os_get_ctx_device_path(sh->cdev->ctx),
+               sizeof(sh->ibdev_path));
        sh->phdev = mlx5_get_physical_device(sh->cdev);
        if (!sh->phdev)
                goto error;
diff --git a/drivers/net/mlx5/windows/mlx5_ethdev_os.c 
b/drivers/net/mlx5/windows/mlx5_ethdev_os.c
index e24ff367af..ecb8914a65 100644
--- a/drivers/net/mlx5/windows/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/windows/mlx5_ethdev_os.c
@@ -67,7 +67,7 @@ mlx5_get_ifname(const struct rte_eth_dev *dev, char 
ifname[MLX5_NAMESIZE])
        }
        priv = dev->data->dev_private;
        context_obj = (mlx5_context_st *)priv->sh->cdev->ctx;
-       strncpy(ifname, context_obj->mlx5_dev.name, MLX5_NAMESIZE);
+       strlcpy(ifname, context_obj->mlx5_dev.name, MLX5_NAMESIZE);
        return 0;
 }
 
-- 
2.53.0

Reply via email to