MFC: r299514
Fix use-after-free in NFS4 lock test service. Trivial use-after-free where stp was freed too soon in the non-error path. To fix, simply move its release to the end of the routine.
This commit is contained in:
parent
6c58c5ba3a
commit
4d757f7655
@ -2416,8 +2416,6 @@ nfsrvd_lockt(struct nfsrv_descript *nd, __unused int isdgram,
|
||||
if (!nd->nd_repstat)
|
||||
nd->nd_repstat = nfsrv_lockctrl(vp, &stp, &lop, &cf, clientid,
|
||||
&stateid, exp, nd, p);
|
||||
if (stp)
|
||||
FREE((caddr_t)stp, M_NFSDSTATE);
|
||||
if (nd->nd_repstat) {
|
||||
if (nd->nd_repstat == NFSERR_DENIED) {
|
||||
NFSM_BUILD(tl, u_int32_t *, 7 * NFSX_UNSIGNED);
|
||||
@ -2439,6 +2437,8 @@ nfsrvd_lockt(struct nfsrv_descript *nd, __unused int isdgram,
|
||||
}
|
||||
}
|
||||
vput(vp);
|
||||
if (stp)
|
||||
FREE((caddr_t)stp, M_NFSDSTATE);
|
||||
NFSEXITCODE2(0, nd);
|
||||
return (0);
|
||||
nfsmout:
|
||||
|
Loading…
x
Reference in New Issue
Block a user