diff options
author | kib <kib@FreeBSD.org> | 2016-03-12 17:25:33 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2016-03-12 17:25:33 +0000 |
commit | ee3cc410299befc7b1157da4dd7f67b0d2b7f069 (patch) | |
tree | 31ceed0c977fc4d77107c7cd227335d998eaa102 /sys/dev/hwpmc | |
parent | 82697125f90797ac8bbcc9a7df73951ad553f31a (diff) | |
download | FreeBSD-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.c | 8 |
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); } |