mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
SUNRPC: Ensure the transport backchannel association
If the server sends CB_ calls on a connection that is not associated with the backchannel, refuse to process the call and shut down the connection. This avoids a NULL dereference crash in xprt_complete_bc_request(). There's not much more we can do in this situation unless we want to look into allowing all connections to be associated with the fore and back channel. Signed-off-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
c9301cb35b
commit
98b5cee373
@ -558,6 +558,10 @@ xs_read_stream_call(struct sock_xprt *transport, struct msghdr *msg, int flags)
|
||||
struct rpc_rqst *req;
|
||||
ssize_t ret;
|
||||
|
||||
/* Is this transport associated with the backchannel? */
|
||||
if (!xprt->bc_serv)
|
||||
return -ESHUTDOWN;
|
||||
|
||||
/* Look up and lock the request corresponding to the given XID */
|
||||
req = xprt_lookup_bc_request(xprt, transport->recv.xid);
|
||||
if (!req) {
|
||||
|
Loading…
Reference in New Issue
Block a user