aboutsummaryrefslogtreecommitdiff
path: root/cddl/contrib/opensolaris/cmd/dtrace
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2019-11-18 18:34:23 +0000
committerMark Johnston <markj@FreeBSD.org>2019-11-18 18:34:23 +0000
commit066d9631cb650f63bad94ce1e22d2d13e3e963bf (patch)
treea79736401bc080fdc6a382b1dbae65acf84e4499 /cddl/contrib/opensolaris/cmd/dtrace
parentfe6d5344c248e4be5e806f25e4d7facfcd1bb2ed (diff)
downloadsrc-066d9631cb650f63bad94ce1e22d2d13e3e963bf.tar.gz
src-066d9631cb650f63bad94ce1e22d2d13e3e963bf.zip
Fix inconsistencies in anonymous DOF files.
The DOF file output by dtrace -A contains only the loadable sections. However, as it was created by a call to dtrace_dof_create() without flags, the original DOF was created with the loadable sections. The result is that the DOF includes the section headers for the unloadable sections (COMMENTS and UTSNAME) without these sections actually being present. This is inconsistent. A simple change to anon_prog() ensures that the missing sections are present in the outputted DOF. Alternatively, the call to dtrace_dof_create() could pass the DTRACE_D_STRIP flag stripping out the loadable sections. As the unloadable sections contain info useful for debugging purposes they haven't been stripped. Submitted by: Graeme Jenkinson <graeme.jenkinson@cl.cam.ac.uk> MFC after: 1 week Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21875
Notes
Notes: svn path=/head/; revision=354822
Diffstat (limited to 'cddl/contrib/opensolaris/cmd/dtrace')
-rw-r--r--cddl/contrib/opensolaris/cmd/dtrace/dtrace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
index 5b291e4ff304..393a7217df25 100644
--- a/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
+++ b/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c
@@ -681,7 +681,7 @@ anon_prog(const dtrace_cmd_t *dcp, dof_hdr_t *dof, int n)
dfatal("failed to create DOF image for '%s'", dcp->dc_name);
p = (uchar_t *)dof;
- q = p + dof->dofh_loadsz;
+ q = p + dof->dofh_filesz;
#ifdef __FreeBSD__
/*