]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
DTrace imposes a 128-byte limit on the length of the function component of
authormarkj <markj@FreeBSD.org>
Mon, 17 Nov 2014 22:22:16 +0000 (22:22 +0000)
committermarkj <markj@FreeBSD.org>
Mon, 17 Nov 2014 22:22:16 +0000 (22:22 +0000)
commit3b8560b96524208c042013355ce68add2f05f8b0
tree8ed748023380caf51123d634925dc43ecebee478
parent8d13dca13bd1aed4398912e6c65f720113edbbe1
DTrace imposes a 128-byte limit on the length of the function component of
a probe name. When dtrace -G builds up a DOF section for the specified
provider(s), the probe function names are truncated to fit in this limit.
The DOF is later used to build the symbol table for the generated object
file, so the table can end up with truncated references, causing link
errors.

Instead of potentially truncating symbol table entries, write the full
function name to the DOF string table and allow the kernel to enforce the
128-byte function name limit when a process attempts to load its DOF.

PR: 194757
Differential Revision: https://reviews.freebsd.org/D1175
Reviewed by: rpaulo
MFC after: 2 weeks
cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c
cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c
cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.h