rxrpc: Fix oops on incoming call to serviceless endpoint
authorDavid Howells <dhowells@redhat.com>
Thu, 6 Oct 2016 07:11:49 +0000 (08:11 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 6 Oct 2016 07:11:49 +0000 (08:11 +0100)
If an call comes in to a local endpoint that isn't listening for any
incoming calls at the moment, an oops will happen.  We need to check that
the local endpoint's service pointer isn't NULL before we dereference it.

Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/call_accept.c

index 3cac231d8405ea8c5fd1327f09db11ae449c4464..22cd8a18c481e66052ae3c3bf254cd20e104bab2 100644 (file)
@@ -337,7 +337,7 @@ struct rxrpc_call *rxrpc_new_incoming_call(struct rxrpc_local *local,
 
        /* Get the socket providing the service */
        rx = rcu_dereference(local->service);
-       if (service_id == rx->srx.srx_service)
+       if (rx && service_id == rx->srx.srx_service)
                goto found_service;
 
        trace_rxrpc_abort("INV", sp->hdr.cid, sp->hdr.callNumber, sp->hdr.seq,