summaryrefslogtreecommitdiffstats
path: root/sys/dev/hwpmc
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2016-03-12 17:25:33 +0000
committerkib <kib@FreeBSD.org>2016-03-12 17:25:33 +0000
commitee3cc410299befc7b1157da4dd7f67b0d2b7f069 (patch)
tree31ceed0c977fc4d77107c7cd227335d998eaa102 /sys/dev/hwpmc
parent82697125f90797ac8bbcc9a7df73951ad553f31a (diff)
downloadFreeBSD-src-ee3cc410299befc7b1157da4dd7f67b0d2b7f069.zip
FreeBSD-src-ee3cc410299befc7b1157da4dd7f67b0d2b7f069.tar.gz
MFC r295352:
Do not call vn_fullpath(9) (through the pmc_getfilename() wrapper) when its result is immediately ignored, i.e. for kernel processes forked from the user process. Do not test for non-null before freeing string.
Diffstat (limited to 'sys/dev/hwpmc')
-rw-r--r--sys/dev/hwpmc/hwpmc_mod.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/hwpmc/hwpmc_mod.c b/sys/dev/hwpmc/hwpmc_mod.c
index 46dd0c3..c8a8526 100644
--- a/sys/dev/hwpmc/hwpmc_mod.c
+++ b/sys/dev/hwpmc/hwpmc_mod.c
@@ -1014,14 +1014,14 @@ pmc_attach_one_process(struct proc *p, struct pmc *pm)
/* issue an attach event to a configured log file */
if (pm->pm_owner->po_flags & PMC_PO_OWNS_LOGFILE) {
- pmc_getfilename(p->p_textvp, &fullpath, &freepath);
if (p->p_flag & P_KTHREAD) {
fullpath = kernelname;
freepath = NULL;
- } else
+ } else {
+ pmc_getfilename(p->p_textvp, &fullpath, &freepath);
pmclog_process_pmcattach(pm, p->p_pid, fullpath);
- if (freepath)
- free(freepath, M_TEMP);
+ }
+ free(freepath, M_TEMP);
if (PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm)))
pmc_log_process_mappings(pm->pm_owner, p);
}
OpenPOWER on IntegriCloud