﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
372	DosLoadModule kills fork	dmik		"It turns out that if a program loads some kLIBC DLL with DosLoadModule and then calls `fork`, LIBC panics with this:
{{{
LIBC PANIC!!
LIBC fork: Child aborting fork()! rc=0xfffffffc
pid=0x09e0 ppid=0x09de tid=0x0001 slot=0x009c pri=0x0200 mc=0x0000 ps=0x0010
D:\CODING\RPM\RPM\TRUNK-BUILD\RPM.EXE
LIBC066 0:00001e28
cs:eip=005b:1f6a1e28      ss:esp=0053:0012df2c      ebp=0012df34
 ds=0053      es=0053      fs=150b      gs=0000     efl=00010212
eax=00000040 ebx=9b3df9c0 ecx=166a0000 edx=00000018 edi=00000000 esi=166a0000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
}}}
This happens when the child processes a parent request to duplicate the data segment of such a DLL w/o actually allocating memory for it. The fork child exception handler kicks in with
{{{
1ea73b07 01 09 0019 Mesg 0002 forkChlExceptionHandler: forkChlExceptionHandler: ExceptionNum=0xc0000005 ExceptionAddress=0x1c924f1e eip=0x1c924f1e ExceptionInfo
={0x000002,0x16650000,0x0056f4,0xfe34e198} fHandlerFlags=0x0
}}}
and this eventually aborts the forked chikd with -EINTR."	defect	new	normal	new	libc	0.6.6	normal			
