rxrpc: Fix a missing NULL-pointer check in a trace
authorDavid Howells <dhowells@redhat.com>
Mon, 14 Sep 2020 12:02:58 +0000 (13:02 +0100)
committerDavid Howells <dhowells@redhat.com>
Mon, 14 Sep 2020 15:18:59 +0000 (16:18 +0100)
Fix the rxrpc_client tracepoint to not dereference conn to get the cid if
conn is NULL, as it does for other fields.

RIP: 0010:trace_event_raw_event_rxrpc_client+0x7e/0xe0 [rxrpc]
Call Trace:
 rxrpc_activate_channels+0x62/0xb0 [rxrpc]
 rxrpc_connect_call+0x481/0x650 [rxrpc]
 ? wake_up_q+0xa0/0xa0
 ? rxrpc_kernel_begin_call+0x12a/0x1b0 [rxrpc]
 rxrpc_new_client_call+0x2a5/0x5e0 [rxrpc]

Fixes: 245500d853e9 ("rxrpc: Rewrite the client connection manager")
Reported-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Marc Dionne <marc.dionne@auristor.com>
include/trace/events/rxrpc.h

index 3b67d59..e70c901 100644 (file)
@@ -579,7 +579,7 @@ TRACE_EVENT(rxrpc_client,
                    __entry->channel = channel;
                    __entry->usage = conn ? atomic_read(&conn->usage) : -2;
                    __entry->op = op;
-                   __entry->cid = conn->proto.cid;
+                   __entry->cid = conn ? conn->proto.cid : 0;
                           ),
 
            TP_printk("C=%08x h=%2d %s i=%08x u=%d",