Report 0511 Actions
Problem Report Number |
0511 |
Submitter's Classification |
Specification problem |
State |
Resolved |
Resolution |
Rejected (REJ) |
Problem Resolution ID |
REJ.X.0130 |
Raised |
1996-04-16 08:00 |
Updated |
2003-03-13 08:00 |
Published |
null |
Product Standard |
Internationalised System Calls and Libraries (XPG4) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSX4 version 4.3.5 |
Test Identification |
POSIX.os/procprim/sigaction NA |
Problem Summary |
PG4R.131 Resolution 1170/40 indicates a change to the signal.h description of the sa_sigaction member of the sigaction structure. This change allows sa_sigaction to be set to SIG_DFL or SIG_IGN as well as a po... |
Problem Text |
Resolution 1170/40 indicates a change to the signal.h description of the sa_sigaction member of the sigaction structure.
This change allows sa_sigaction to be set to SIG_DFL or SIG_IGN as well as a pointer to a signal handler function.
We have two concerns with this change: (1) This is a disagreement concern.
The XPG4 System Interfaces and Headers 4.2, September, 1994 does not indicate that macros SIG_DFL or SIG_IGN can be used as a value for the sa_sigaction member of the sigaction structure, either in sigaction() or signal.h sections. It does, however, indicate that the SIG_DFL and SIG_IGN macros can be used for the sa_handler member of the sigaction structure, as can be seen on page 545.
Our interpretation of this is that SIG_DFL and SIG_IGN are not allowed as values for the sa_sigaction member of the sigaction structure.
The macros are defined as pointers to functions that return void and accept a single parameter, i.e. the format of the sa_handler member of the sigaction structure. This is consistent with the specification of these macros on page 794, under DESCRIPTION. To allow SIG_DFL and SIG_IGN to be used for sa_sigaction, i.e. pointer to function that returns void and accepts 3 parameters, is incompatible. The compiler used does not allow either of the following:
sa1.sa_sigaction = SIG_DFL; sa1.sa_sigaction = SIG_IGN;
to be coded in the user application program (based on the definitions in signal.h).
What we would like is another interpretation request to be made based on the Corrigenda. We would like to understand why this change was made. How does X/Open expect us to define SIG_DFL and SIG_IGN such that they can be used as two different types? We can't believe that X/Open would allow such a definition as part of a standard.
Note: The sa_sigaction member was added as part of XPG 4.2. We believe its intention was to allow more information to be passed to a signal catching function. Therefore, why would it be allowed to use SIG_DFL or SIG_IGN as a value for this member?
(2) The consistency concern.
If this change remains, then there should also be an update made to the sigaction() function. The sa_sigaction member is described only as "Signal-catching function." on page 545. This would also need to indicate SIG_DFL and SIG_IGN as valid values. Another change would be required in the signal header, page 794. The symbolic constants SIG_DFL and SIG_IGN would need to be changed.
|
Test Output |
N/A
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
Resolution 1170/40 was an explicit change to the specification approved by the Base Working Group:
[Request text starts]
The XPG4 Extended specification does not say whether the sa_sigaction member of the sigaction structure, when SA_SIGINFO is set, can contain a signal action of SIG_DFL or SIG_IGN, or whether it can only contain a pointer to a signal- catching function.
All indications are that they can point to the same space, and hence contain the same information.
Suggested Action:
Allow the sa_sigaction member to contain SIG_DFL or SIG_IGN.
[request text ends] [text ends]
X/OPEN RESOLUTION:
The sa_sigaction member is allowed to contain SIG_DFL or SIG_IGN.
As the Base Working group has already addressed the issue we see no reason to raise it again and recommend the corrigenda stand as it is.
|
Review Type |
Expert Group Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
The Base Working Group confirmed the consultant's response.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Rejected (REJ) |
Review Conclusion |
This request is refused.
|
Problem Reporting System Options:
|