Re: [PATCH 4.19 011/191] nfsd4: avoid NULL deference on strange COPY compounds

From: Pavel Machek
Date: Fri Feb 21 2020 - 05:51:08 EST


Hi!

> With cross-server COPY we've introduced the possibility that the current
> or saved filehandle might not have fh_dentry/fh_export filled in, but we
> missed a place that assumed it was. I think this could be triggered by
> a compound like:
>
> PUTFH(foreign filehandle)
> GETATTR
> SAVEFH
> COPY
>
> First, check_if_stalefh_allowed sets no_verify on the first (PUTFH) op.
> Then op_func = nfsd4_putfh runs and leaves current_fh->fh_export NULL.
> need_wrongsec_check returns true, since this PUTFH has OP_IS_PUTFH_LIKE
> set and GETATTR does not have OP_HANDLES_WRONGSEC set.
>
> We should probably also consider tightening the checks in
> check_if_stalefh_allowed and double-checking that we don't assume the
> filehandle is verified elsewhere in the compound. But I think this
> fixes the immediate issue.
>
> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Fixes: 4e48f1cccab3 "NFSD: allow inter server COPY to have... "

AFAICT 4e48f1cccab3 "NFSD: allow inter server COPY to have... " is not
part of 4.19 series, so this should not be needed in 4.19.

Best regards,

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: PGP signature