Bug 175088 - Signal handler restoration broken by signal()
Summary: Signal handler restoration broken by signal()
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: gamin
Version: 4.0
Hardware: All
OS: Linux
Target Milestone: ---
: ---
Assignee: Alexander Larsson
QA Contact:
Depends On:
Blocks: 181409
TreeView+ depends on / blocked
Reported: 2005-12-06 15:31 UTC by Bastien Nocera
Modified: 2007-11-30 22:07 UTC (History)
1 user (show)

Clone Of:
Last Closed: 2006-08-10 21:27:18 UTC

Attachments (Terms of Use)
gamin-dont-break-original-sighandler-rhel4.patch (999 bytes, patch)
2005-12-06 15:31 UTC, Bastien Nocera
no flags Details | Diff
test case (500 bytes, text/plain)
2006-06-01 09:55 UTC, Alexander Larsson
no flags Details

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2006:0450 normal SHIPPED_LIVE gamin bug fix update 2006-08-09 04:00:00 UTC
GNOME Bugzilla 321601 None None None Never

Description Bastien Nocera 2005-12-06 15:31:28 UTC

Upstream bugzilla is:

RHEL4 version of the patch attached.

For the record:
When an application sets up its signal using sigaction, and with the SA_SIGINFO
flag, the signal handler has 3 arguments, instead of just one.

If one uses signal(2) to check the existence of a signal handler for that
signal, restoring that handler with signal will mean that only 1 argument will
be passed, thus breaking the application.

Comment 1 Bastien Nocera 2005-12-06 15:31:30 UTC
Created attachment 121912 [details]

Comment 2 Bastien Nocera 2005-12-15 12:44:44 UTC
Without this, JRockit hangs when launching Eclipse (which will use gamin). gamin
will override JRockit's signal handler, and not restore it properly.

Comment 5 Alexander Larsson 2006-04-13 07:49:04 UTC
The patch looks ok to me.

Comment 11 Alexander Larsson 2006-06-01 09:55:10 UTC
Created attachment 130328 [details]
test case

Test case that demonstrates the problem.

Comment 14 Red Hat Bugzilla 2006-08-10 21:27:27 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.


Note You need to log in before you can comment on or make changes to this bug.