sem_init() fails (when used in a certain way)

Corinna Vinschen
Wed Mar 30 14:31:00 GMT 2011

On Mar 30 08:07, Eric Blake wrote:
> On 03/30/2011 02:01 AM, Corinna Vinschen wrote:
> > Thanks for clarifying.  We just have to keep in mind to return EINVAL
> > rather than EFAULT.
> > 
> > Btw., glibc does not test the validity of the semaphore at all.  If you
> > give an invalid sem pointer to the sem functions, it just crashes:
> Which is allowed by POSIX.  In fact, my understanding is that older
> POSIX used to require that invalid objects be identified, until Ulrich
> argued that there are pathological cases (such as reuse of heap that
> already contains contents from a prior pointer) that make such detection
> practically impossible in any reasonable amount of time, so POSIX was
> intentionally relaxed to no longer require detection of invalid objects
> (they are just as undefined as any other use of a bad pointer) in order
> to cater to glibc.

So we could not add myfault handler's *and* remove the is_good_object
tests everywhere and we would still be on the safe side of Linux and
POSIX, right?  That would perhaps speed up extensive usage of the
pthread functions noticably.


Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

More information about the Cygwin-developers mailing list