Re: [PATCH] Revert "SUNRPC: Fail faster on bad verifier"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Sep 5, 2023, at 9:03 PM, trondmy@xxxxxxxxxx wrote:
> 
> From: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
> 
> This reverts commit 0701214cd6e66585a999b132eb72ae0489beb724.
> 
> The premise of this commit was incorrect. There are exactly 2 cases
> where rpcauth_checkverf() will return an error:
> 
> 1) If there was an XDR decode problem (i.e. garbage data).
> 2) If gss_validate() had a problem verifying the RPCSEC_GSS MIC.

There's also the AUTH_TLS probe:

https://www.rfc-editor.org/rfc/rfc9289.html#section-4.1-7

That was the purpose of 0701214cd6e6.

Reverting this commit is likely to cause problems when our
TLS-capable client interacts with a server that knows
nothing of AUTH_TLS.


> In the second case, there are again 2 subcases:
> 
> a) The GSS context expires, in which case gss_validate() will force a
>   new context negotiation on retry by invalidating the cred.
> b) The sequence number check failed because an RPC call timed out, and
>   the client retransmitted the request using a new sequence number,
>   as required by RFC2203.
> 
> In neither subcase is this a fatal error.
> 
> Reported-by: Russell Cattelan <cattelan@xxxxxxxxxxx>
> Fixes: 0701214cd6e6 ("SUNRPC: Fail faster on bad verifier")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
> ---
> net/sunrpc/clnt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index 12c46e129db8..5a7de7e55548 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -2724,7 +2724,7 @@ rpc_decode_header(struct rpc_task *task, struct xdr_stream *xdr)
> 
> out_verifier:
> trace_rpc_bad_verifier(task);
> - goto out_err;
> + goto out_garbage;
> 
> out_msg_denied:
> error = -EACCES;
> -- 
> 2.41.0
> 

--
Chuck Lever






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux