]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
afs: Fix unchecked-length string display in debug statement
authorDavid Howells <dhowells@redhat.com>
Mon, 22 Jun 2026 09:08:55 +0000 (10:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 1 Jul 2026 13:26:22 +0000 (15:26 +0200)
Fix afs_extract_vlserver_list() to limit the length of the displayed
string in a debug statement().

Fixes: 0a5143f2f89c ("afs: Implement VL server rotation")
Closes: https://sashiko.dev/#/patchset/20260618074903.2374756-1-dhowells%40redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/20260622090856.2746629-22-dhowells@redhat.com
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/afs/vl_list.c

index 8e1cf6cdcf71342c107721222694bfbef041d749..c1dac5dbed0dd0e5ffe6d18d2a81d2a2e21b4b46 100644 (file)
@@ -200,6 +200,8 @@ struct afs_vlserver_list *afs_extract_vlserver_list(struct afs_cell *cell,
 
        b += sizeof(*hdr);
        while (end - b >= sizeof(bs)) {
+               int nlen;
+
                bs.name_len     = afs_extract_le16(&b);
                bs.priority     = afs_extract_le16(&b);
                bs.weight       = afs_extract_le16(&b);
@@ -209,10 +211,12 @@ struct afs_vlserver_list *afs_extract_vlserver_list(struct afs_cell *cell,
                bs.protocol     = *b++;
                bs.nr_addrs     = *b++;
 
+               nlen = min3(bs.name_len, end - b, 255);
+
                _debug("extract %u %u %u %u %u %u %*.*s",
                       bs.name_len, bs.priority, bs.weight,
                       bs.port, bs.protocol, bs.nr_addrs,
-                      bs.name_len, bs.name_len, b);
+                      bs.name_len, nlen, b);
 
                if (end - b < bs.name_len)
                        break;