Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()

The TP_fast_assign() section is careful enough not to dereference
xdr->rqst if it's NULL. The TP_STRUCT__entry section is not.

Fixes: 5582863f450c ("SUNRPC: Add XDR overflow trace event")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>

authored by

Chuck Lever and committed by
J. Bruce Fields
d321ff58 1905cac9

+4 -4
+4 -4
include/trace/events/sunrpc.h
··· 655 655 __field(size_t, tail_len) 656 656 __field(unsigned int, page_len) 657 657 __field(unsigned int, len) 658 - __string(progname, 659 - xdr->rqst->rq_task->tk_client->cl_program->name) 660 - __string(procedure, 661 - xdr->rqst->rq_task->tk_msg.rpc_proc->p_name) 658 + __string(progname, xdr->rqst ? 659 + xdr->rqst->rq_task->tk_client->cl_program->name : "unknown") 660 + __string(procedure, xdr->rqst ? 661 + xdr->rqst->rq_task->tk_msg.rpc_proc->p_name : "unknown") 662 662 ), 663 663 664 664 TP_fast_assign(