Bug 28493

Summary: pthreads sighandler broken sigcontext passing
Product: [Retired] Red Hat Linux Reporter: Jesse Off <joff>
Component: glibcAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: Aaron Brown <abrown>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: fweimer
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-02-20 20:16:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jesse Off 2001-02-20 20:16:06 UTC
If you set up a signal handler in pthreads and modify the struct 
sigcontext passed in, your changes to that struct are discarded.  For 
instance, modifying context.eip to point to a new function works as you 
would expect in a non-pthreads app, but does not work in pthreads.

Investigation shows that pthreads sets up its own signal handler that then 
copies the real struct sigcontext before passing it to the user 
sighandler.  The user sighandler's struct sigcontext never makes it back 
to the kernel.

Comment 1 Jakub Jelinek 2001-03-21 12:57:05 UTC
Should be fixed in glibc-2.2.2-7.