]> www.infradead.org Git - users/hch/misc.git/commitdiff
cdx: Fix off-by-one error in cdx_rpmsg_probe()
authorThorsten Blum <thorsten.blum@linux.dev>
Wed, 6 Aug 2025 09:05:09 +0000 (11:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 19 Aug 2025 10:55:16 +0000 (12:55 +0200)
In cdx_rpmsg_probe(), strscpy() is incorrectly called with the length of
the source string (excluding the NUL terminator) rather than the size of
the destination buffer. This results in one character less being copied
from 'cdx_rpmsg_id_table[0].name' to 'chinfo.name'.

Use the destination buffer size instead to ensure the name is copied
correctly.

Cc: stable <stable@kernel.org>
Fixes: 2a226927d9b8 ("cdx: add rpmsg communication channel for CDX")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://lore.kernel.org/r/20250806090512.121260-2-thorsten.blum@linux.dev
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/cdx/controller/cdx_rpmsg.c

index 04b578a0be17c2d0c4b0d2dc07e313a2170aff28..61f1a290ff0890d9a2a0f66b53114afc92c62c02 100644 (file)
@@ -129,8 +129,7 @@ static int cdx_rpmsg_probe(struct rpmsg_device *rpdev)
 
        chinfo.src = RPMSG_ADDR_ANY;
        chinfo.dst = rpdev->dst;
-       strscpy(chinfo.name, cdx_rpmsg_id_table[0].name,
-               strlen(cdx_rpmsg_id_table[0].name));
+       strscpy(chinfo.name, cdx_rpmsg_id_table[0].name, sizeof(chinfo.name));
 
        cdx_mcdi->ept = rpmsg_create_ept(rpdev, cdx_rpmsg_cb, NULL, chinfo);
        if (!cdx_mcdi->ept) {