[klibc] signal handlers segfault on Fedora kernels

H. Peter Anvin hpa at zytor.com
Mon Mar 21 11:58:04 PST 2005


Kay Sievers wrote:
>>
>>This is not even close to sane (there are at least 6 words on the stack 
>>before anything that looks like an address), and I have absolutely no 
>>idea what they have done to the kernel or glibc to "accomplish" this...
> 
> Ah nice, good to have an idea now. I've looked over the patches they
> apply and is seems the execshield-patch that is causing it and the "vDSO
> randomisation" does not play well with us.
> 

That doesn't explain why they leave a crap stack, nor does it explain 
why glibc doesn't scream bloody murder.

My best guess is that glibc points all signals to an internal thunk and 
uses a table to figure out where to dispatch to.

> If I switch on the /proc/sys/kernel/print-fatal-signal along with the
> segfault this is printed:
>   kernel: klibctest/9222: potentially unexpected fatal signal 11.
>   kernel: code at 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
>   kernel: 
>   kernel: Pid: 9222, comm:            klibctest
>   kernel: EIP: 0073:[<00000420>] CPU: 0
>   kernel: EIP is at 0x420
>   kernel:  ESP: 007b:bfed56e4 EFLAGS: 00010207    Not tainted  (2.6.11-1.1191_FC4)
>   kernel: EAX: 00000002 EBX: bfed59d0 ECX: 00000000 EDX: 00000000
>   kernel: ESI: 00000064 EDI: 00000000 EBP: 080480e4 DS: 007b ES: 007b
>   kernel: CR0: 8005003b CR2: 0000042f CR3: 32e53000 CR4: 000006c0
>   kernel: klibctest/9222: potentially unexpected fatal signal 11.
>   kernel: code at 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
> 
> If I switch off /proc/sys/kernel/vdso everything seems to work normal.
> 
> Thanks,
> Kay



More information about the klibc mailing list