aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveIntervalUnion.cpp
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2026-09-02 08:51:42 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2026-09-02 15:00:58 +0000
commit1a669b66ddb4748c24116e32dcb51eabaf4859ed (patch)
tree82e3de816d9b623c0b891a91872e8632df52dd6d /lib/CodeGen/LiveIntervalUnion.cpp
parentab420c44bc7c45bf344cb03b289e60109f57aaee (diff)
syslogd: reap pipe children on config reloadHEADmain
On SIGHUP reload, closelogfiles() frees each F_PIPE filed even when its pipe process is still running. close_filed() sets f_type to F_UNUSED before the check, so the condition f_type != F_PIPE is always true and the filed is freed while its process descriptor is still on the dead queue and registered in the kqueue. When the child later exits, the NOTE_EXIT handler dereferences the freed filed (use-after-free) and never closes the process descriptor, leaving the pipe child as a persistent zombie. Capture whether the filed is a pipe with an active process descriptor before calling close_filed(), and defer the free in that case so the NOTE_EXIT handler can reap the child and free the filed. Reviewed by: markj Fixes: 95381c0139d6 (syslogd: Use process descriptors) Differential Revision: https://reviews.freebsd.org/D59319
Diffstat (limited to 'lib/CodeGen/LiveIntervalUnion.cpp')
0 files changed, 0 insertions, 0 deletions