mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	NFSD: fix decoding in nfs4_xdr_dec_cb_getattr
If a client were to send an error to a CB_GETATTR call, the code
erronously continues to try decode past the error code. It ends
up returning BAD_XDR error to the rpc layer and then in turn
trigger a WARN_ONCE in nfsd4_cb_done() function.
Fixes: 6487a13b5c ("NFSD: add support for CB_GETATTR callback")
Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
			
			
This commit is contained in:
		
							parent
							
								
									35e34642b5
								
							
						
					
					
						commit
						1b3e26a5cc
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -647,7 +647,7 @@ static int nfs4_xdr_dec_cb_getattr(struct rpc_rqst *rqstp,
 | 
			
		|||
		return status;
 | 
			
		||||
 | 
			
		||||
	status = decode_cb_op_status(xdr, OP_CB_GETATTR, &cb->cb_status);
 | 
			
		||||
	if (status)
 | 
			
		||||
	if (unlikely(status || cb->cb_seq_status))
 | 
			
		||||
		return status;
 | 
			
		||||
	if (xdr_stream_decode_uint32_array(xdr, bitmap, 3) < 0)
 | 
			
		||||
		return -NFSERR_BAD_XDR;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue