NFS: Fix hdrlen calculation in NFSv4's decode_read()
When computing the length of the header, be sure to include the four octets consumed by "count". Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Tested-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
		
							parent
							
								
									d8367c504e
								
							
						
					
					
						commit
						8111f37360
					
				| @ -4475,7 +4475,7 @@ static int decode_read(struct xdr_stream *xdr, struct rpc_rqst *req, struct nfs_ | ||||
| 		goto out_overflow; | ||||
| 	eof = be32_to_cpup(p++); | ||||
| 	count = be32_to_cpup(p); | ||||
| 	hdrlen = (u8 *) p - (u8 *) iov->iov_base; | ||||
| 	hdrlen = (u8 *) xdr->p - (u8 *) iov->iov_base; | ||||
| 	recvd = req->rq_rcv_buf.len - hdrlen; | ||||
| 	if (count > recvd) { | ||||
| 		dprintk("NFS: server cheating in read reply: " | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user