]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
afs: Fix vllist leak
authorDavid Howells <dhowells@redhat.com>
Mon, 22 Jun 2026 09:08:51 +0000 (10:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 1 Jul 2026 13:26:21 +0000 (15:26 +0200)
Fix a leak of the new vllist in afs_update_cell() in the event that it is an
empty list (nr_servers == 0), in which case the old list isn't displaced
unless the old list is also empty.

Fixes: d5c32c89b208 ("afs: Fix cell DNS lookup")
Closes: https://sashiko.dev/#/patchset/20260609081738.770127-1-dhowells%40redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/20260622090856.2746629-18-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/cell.c

index e0fab1609f2787cf7e71f6741a9cb724d42e004e..fbb8a43aa7cd9a3b9b93244de3e2bd334c720512 100644 (file)
@@ -547,6 +547,8 @@ static int afs_update_cell(struct afs_cell *cell)
                rcu_assign_pointer(cell->vl_servers, vllist);
                cell->dns_source = vllist->source;
                old = p;
+       } else {
+               old = vllist;
        }
        write_unlock(&cell->vl_servers_lock);
        afs_put_vlserverlist(cell->net, old);