afs: Avoid touching CBRs after free 65/14165/6
authorAndrew Deason <adeason@dson.org>
Mon, 27 Apr 2020 18:28:33 +0000 (13:28 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Sun, 5 Sep 2021 16:15:43 +0000 (12:15 -0400)
commit02c3d56956dc4c94a9076b6d7eb56d26534faa9c
treeac1b47bc78b0111b59697d1a8a875bff6541b23e
parentc3702afa8cfaa5cce5a9c751b63bf0b8fb3c986f
afs: Avoid touching CBRs after free

Currently, we free our CBR structures in shutdown_vcache, but later on
in shutdown_server, we call afs_FreeCBR on each one that's attached to
a struct server. afs_FreeCBR doesn't actually free the memory; it just
modifies some pointers to put the CBR on the free list. Since we do
this after the underlying memory has been freed, it can cause a panic
during shutdown since the structures are no longer valid.

To avoid this, make the afs_FreeCBR calls inside shutdown_vcache,
right before the memory is freed.

Change-Id: I142126d6aa811762b6c234d05abdac3764dad887
Reviewed-on: https://gerrit.openafs.org/14165
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/afs/afs_init.c
src/afs/afs_vcache.c