From: Chuck Lever <chuck.lever@xxxxxxxxxx> On Sun, 26 Jan 2025 17:47:22 +0800, Li Lingfeng wrote: > If getting acl_default fails, acl_access and acl_default will be released > simultaneously. However, acl_access will still retain a pointer pointing > to the released posix_acl, which will trigger a WARNING in > nfs3svc_release_getacl like this: > > ------------[ cut here ]------------ > refcount_t: underflow; use-after-free. > WARNING: CPU: 26 PID: 3199 at lib/refcount.c:28 > refcount_warn_saturate+0xb5/0x170 > Modules linked in: > CPU: 26 UID: 0 PID: 3199 Comm: nfsd Not tainted > 6.12.0-rc6-00079-g04ae226af01f-dirty #8 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS > 1.16.1-2.fc37 04/01/2014 > RIP: 0010:refcount_warn_saturate+0xb5/0x170 > Code: cc cc 0f b6 1d b3 20 a5 03 80 fb 01 0f 87 65 48 d8 00 83 e3 01 75 > e4 48 c7 c7 c0 3b 9b 85 c6 05 97 20 a5 03 01 e8 fb 3e 30 ff <0f> 0b eb > cd 0f b6 1d 8a3 > RSP: 0018:ffffc90008637cd8 EFLAGS: 00010282 > RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff83904fde > RDX: dffffc0000000000 RSI: 0000000000000008 RDI: ffff88871ed36380 > RBP: ffff888158beeb40 R08: 0000000000000001 R09: fffff520010c6f56 > R10: ffffc90008637ab7 R11: 0000000000000001 R12: 0000000000000001 > R13: ffff888140e77400 R14: ffff888140e77408 R15: ffffffff858b42c0 > FS: 0000000000000000(0000) GS:ffff88871ed00000(0000) > knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 0000562384d32158 CR3: 000000055cc6a000 CR4: 00000000000006f0 > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > [...] Applied to nfsd-testing, thanks! [1/1] nfsd: clear acl_access/acl_default after releasing them commit: d5595d284a1c022b341bab2f66a631ae13eaee14 -- Chuck Lever