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: [email protected]
          Reporter: [email protected]
                CC: [email protected]

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.
-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to