Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 159085 - errno is 0 when sigwait returns an error
Summary: errno is 0 when sigwait returns an error
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: glibc
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-05-29 05:42 UTC by Jonathan Kamens
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-05-30 08:43:37 UTC


Attachments (Terms of Use)

Description Jonathan Kamens 2005-05-29 05:42:33 UTC
For some reason I do not understand from looking at the code, which must be
related in some weird way to how glibc handles function calls, system calls,
etc., when sigwait returns an error code the value of errno is not preserved,
i.e., the errno value is returned as an error code from sigwait but errno is 0
when it's examined.  The value of errno should be preserved, as it is on
non-Linux operating systems.

Comment 1 Jakub Jelinek 2005-05-30 08:43:37 UTC
errno after sigwait is unspecified.
See
http://www.opengroup.org/onlinepubs/009695399/functions/errno.html
and
http://www.opengroup.org/onlinepubs/009695399/functions/sigwait.html
As sigwait's description doesn't mandate anything about errno value, it is
unspecified.  The only requirement is that if errno was non-zero before sigwait,
it will not be set to 0 by the call.  If you see errno becoming 0 when it
previously was non-zero, then please provide a testcase.
But to my knowledge nothing in glibc violates that requirement, especially not
sigwait, which on most architectures will simply not touch errno at all, only
return the error value as it is supposed to do.


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