On 03/07/2014 06:03 AM, Tom Lane wrote:
> In the bug thread I proposed making atexit_callback check whether getpid()
> still matches MyProcPid. If it doesn't, then presumably we inherited the
> atexit callback list, along with the value of MyProcPid, from some parent
> backend process whose elbow we should not joggle. Can anyone see a flaw
> in that?
There's the PID reuse problem. Forking twice (with a delay) could end
up with the same PID as MyProcPid. Comparing the process start time
would protect against that. Checking getppid() would have the same
theoretical problem.
--
Florian Weimer / Red Hat Product Security Team