https://bugs.exim.org/show_bug.cgi?id=2844
Bug ID: 2844
Summary: ${perl} expansion can change global state
Product: Exim
Version: 4.95
Hardware: x86
OS: All
Status: NEW
Severity: bug
Priority: low
Component: Unfiled
Assignee: unallocated@???
Reporter: jgh146exb@???
CC: exim-dev@???
A perl subroutine called via expansion can leave the SIGALRM handler changed.
When later code in Exim (reasonably) assumes it to be set up, and a timer
does go off, the process can be killed or the timer not noticed.
There is probably other state too. Apart from the perl expansion we could
also worry about LOCAL_SCAN extensions and ${dlfunc}
Ideas for attacking this:
- fork for a ${perl} call. Expensive.
- Check and reset state after the ${perl} call. Still could be quite a few
syscalls.
-- check and LOG_PANIC_DIE. Still many calls
-- check only under debug
- Check state before anything that needs the SIGALRM handler, cf. ALARM() macro
-- but what about other state?
--
You are receiving this mail because:
You are on the CC list for the bug.