e6b95927f3
This fix is spiritually similar to r287442 and was discovered thanks to the KASSERT added in that revision. NT_PROCSTAT_VMMAP output length, when packing kinfo structs, is tied to the length of filenames corresponding to vnodes in the process' vm map via vn_fullpath. As vnodes may move during coredump, this is racy. We do not remove the race, only prevent it from causing coredump corruption. - Add a sysctl, kern.coredump_pack_vmmapinfo, to allow users to disable kinfo packing for PROCSTAT_VMMAP notes. This avoids VMMAP corruption and truncation, even if names change, at the cost of up to PATH_MAX bytes per mapped object. The new sysctl is documented in core.5. - Fix note_procstat_vmmap to self-limit in the second pass. This addresses corruption, at the cost of sometimes producing a truncated result. - Fix PROCSTAT_VMMAP consumers libutil (and libprocstat, via copy-paste) to grok the new zero padding. Reported by: pho (https://people.freebsd.org/~pho/stress/log/datamove4-2.txt) Relnotes: yes Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3824 |
||
---|---|---|
.. | ||
zfs | ||
cd9660.c | ||
common_kvm.c | ||
common_kvm.h | ||
core.c | ||
core.h | ||
libprocstat_internal.h | ||
libprocstat.3 | ||
libprocstat.c | ||
libprocstat.h | ||
Makefile | ||
Makefile.depend | ||
msdosfs.c | ||
smbfs.c | ||
Symbol.map | ||
udf.c | ||
Versions.def | ||
zfs.c |