diff options
author | 2025-06-08 18:08:51 -0400 | |
---|---|---|
committer | 2025-06-12 20:37:32 -0400 | |
commit | 32ce6b3a83b71d8abf0c0837dc78775f16c9902f (patch) | |
tree | c8dd0ba11124ad761abc10da7741756e482e4db8 | |
parent | xdrgen: Fix code generated for counted arrays (diff) | |
download | wireguard-linux-32ce6b3a83b71d8abf0c0837dc78775f16c9902f.tar.xz wireguard-linux-32ce6b3a83b71d8abf0c0837dc78775f16c9902f.zip |
NFSD: Avoid corruption of a referring call list
The new code neglects to remove a freshly-allocated RCL from the
callback's referring call list when no matching referring call is
found.
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202505171002.cE46sdj5-lkp@intel.com/
Fixes: 4f3c8d8c9e10 ("NFSD: Implement CB_SEQUENCE referring call lists")
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r-- | fs/nfsd/nfs4callback.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index ccb00aa93be0..e00b2aea8da2 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c @@ -1409,6 +1409,7 @@ void nfsd41_cb_referring_call(struct nfsd4_callback *cb, out: if (!rcl->__nr_referring_calls) { cb->cb_nr_referring_call_list--; + list_del(&rcl->__list); kfree(rcl); } } |