patch 'vhost: remove use of strncpy' has been queued to stable release 24.11.9
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Tue Oct 27 12:49:09 CET 2026
Hi,
FYI, your patch has been queued to stable release 24.11.9
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 10/29/26. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/bc89bfe97602c36b384df2881277533f7a7ddac3
Thanks.
Luca Boccassi
---
>From bc89bfe97602c36b384df2881277533f7a7ddac3 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson at intel.com>
Date: Mon, 17 Aug 2026 14:42:42 +0100
Subject: [PATCH] vhost: remove use of strncpy
[ upstream commit fbdeee438ee569cc5ca907e53421f1290d8c97cb ]
The strlcpy is preferred over use of strncpy, which removes the need to
try and explicitly null-terminate some string buffers. We can also
simplify some name length handling as a result of this, as we no longer
need to use strnlen to clamp the length before calling the set_ifname
function.
Fixes: a277c7159876 ("vhost: refactor code structure")
Fixes: 0adb8eccc6a6 ("vhost: add VDUSE device creation and destruction")
Fixes: c171a2d5ff17 ("vhost: use strlcpy instead of strncpy")
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
Reviewed-by: Chengwen Feng <fengchengwen at huawei.com>
---
lib/vhost/socket.c | 4 +---
lib/vhost/vduse.c | 2 +-
lib/vhost/vhost.c | 12 +++---------
lib/vhost/vhost.h | 2 +-
4 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/lib/vhost/socket.c b/lib/vhost/socket.c
index 4286fb7b22a..a3183138338 100644
--- a/lib/vhost/socket.c
+++ b/lib/vhost/socket.c
@@ -206,7 +206,6 @@ static void
vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
{
int vid;
- size_t size;
struct vhost_user_connection *conn;
int ret;
struct virtio_net *dev;
@@ -225,8 +224,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
goto err;
}
- size = strnlen(vsocket->path, PATH_MAX);
- vhost_set_ifname(vid, vsocket->path, size);
+ vhost_set_ifname(vid, vsocket->path);
vhost_setup_virtio_net(vid, vsocket->use_builtin_virtio_net,
vsocket->net_compliant_ol_flags, vsocket->stats_enabled,
diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c
index 7429889a8ad..95bed9ac955 100644
--- a/lib/vhost/vduse.c
+++ b/lib/vhost/vduse.c
@@ -817,7 +817,7 @@ vduse_device_create(const char *path, bool compliant_ol_flags, bool extbuf, bool
goto out_dev_destroy;
}
- strncpy(dev->ifname, path, IF_NAME_SZ - 1);
+ strlcpy(dev->ifname, path, sizeof(dev->ifname));
dev->vduse_ctrl_fd = control_fd;
dev->vduse_dev_fd = dev_fd;
diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 835f5dfb11e..56ec19007e1 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -867,20 +867,15 @@ vhost_attach_vdpa_device(int vid, struct rte_vdpa_device *vdpa_dev)
}
void
-vhost_set_ifname(int vid, const char *if_name, unsigned int if_len)
+vhost_set_ifname(int vid, const char *if_name)
{
struct virtio_net *dev;
- unsigned int len;
dev = get_device(vid);
if (dev == NULL)
return;
- len = if_len > sizeof(dev->ifname) ?
- sizeof(dev->ifname) : if_len;
-
- strncpy(dev->ifname, if_name, len);
- dev->ifname[sizeof(dev->ifname) - 1] = '\0';
+ strlcpy(dev->ifname, if_name, sizeof(dev->ifname));
}
void
@@ -1002,8 +997,7 @@ rte_vhost_get_ifname(int vid, char *buf, size_t len)
len = RTE_MIN(len, sizeof(dev->ifname));
- strncpy(buf, dev->ifname, len);
- buf[len - 1] = '\0';
+ strlcpy(buf, dev->ifname, len);
return 0;
}
diff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h
index c0ed47cdf2a..f12a84cad96 100644
--- a/lib/vhost/vhost.h
+++ b/lib/vhost/vhost.h
@@ -886,7 +886,7 @@ int alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx);
void vhost_attach_vdpa_device(int vid, struct rte_vdpa_device *dev);
-void vhost_set_ifname(int, const char *if_name, unsigned int if_len);
+void vhost_set_ifname(int vid, const char *if_name);
void vhost_setup_virtio_net(int vid, bool enable, bool legacy_ol_flags, bool stats_enabled,
bool support_iommu);
void vhost_enable_extbuf(int vid);
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-10-27 11:43:55.853354823 +0000
+++ 0055-vhost-remove-use-of-strncpy.patch 2026-10-27 11:43:53.562060934 +0000
@@ -1 +1 @@
-From fbdeee438ee569cc5ca907e53421f1290d8c97cb Mon Sep 17 00:00:00 2001
+From bc89bfe97602c36b384df2881277533f7a7ddac3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fbdeee438ee569cc5ca907e53421f1290d8c97cb ]
+
@@ -15 +16,0 @@
-Cc: stable at dpdk.org
@@ -27 +28 @@
-index 70e582a18d..0943b3e9bb 100644
+index 4286fb7b22a..a3183138338 100644
@@ -30 +31 @@
-@@ -207,7 +207,6 @@ static void
+@@ -206,7 +206,6 @@ static void
@@ -38 +39 @@
-@@ -226,8 +225,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
+@@ -225,8 +224,7 @@ vhost_user_add_connection(int fd, struct vhost_user_socket *vsocket)
@@ -49 +50 @@
-index 0b5d158fee..f8a4a8edcb 100644
+index 7429889a8ad..95bed9ac955 100644
@@ -52 +53 @@
-@@ -796,7 +796,7 @@ vduse_device_create(const char *path, bool compliant_ol_flags, bool extbuf, bool
+@@ -817,7 +817,7 @@ vduse_device_create(const char *path, bool compliant_ol_flags, bool extbuf, bool
@@ -62 +63 @@
-index 7e68b2c3be..fde8acb00c 100644
+index 835f5dfb11e..56ec19007e1 100644
@@ -65 +66 @@
-@@ -776,20 +776,15 @@ vhost_attach_vdpa_device(int vid, struct rte_vdpa_device *vdpa_dev)
+@@ -867,20 +867,15 @@ vhost_attach_vdpa_device(int vid, struct rte_vdpa_device *vdpa_dev)
@@ -88 +89 @@
-@@ -915,8 +910,7 @@ rte_vhost_get_ifname(int vid, char *buf, size_t len)
+@@ -1002,8 +997,7 @@ rte_vhost_get_ifname(int vid, char *buf, size_t len)
@@ -99 +100 @@
-index ee61f7415e..bb4708aed5 100644
+index c0ed47cdf2a..f12a84cad96 100644
@@ -102 +103 @@
-@@ -877,7 +877,7 @@ int alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx);
+@@ -886,7 +886,7 @@ int alloc_vring_queue(struct virtio_net *dev, uint32_t vring_idx);
More information about the stable
mailing list