[exim-dev] [Bug 2844] New: ${perl} expansion can change glob…

Top Page
Delete this message
Reply to this message
Author: admin
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 2844] New: ${perl} expansion can change global state
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.