On Aug 24 07:25, Eric Blake wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I finally found root cause for the tar issue reported here: > http://cygwin.com/ml/cygwin/2007-08/msg00553.html > > $ cat foo.c > #include <stdio.h> > #include <stdlib.h> > #include <unistd.h> > #include <errno.h> > #include <string.h> > #include <fcntl.h> > > int main(int argc, char**argv) > { > int fd; > symlink ("oops", "broken"); > fd = open ("broken", O_WRONLY|O_CREAT|O_EXCL, 0600); > printf ("fd=%d, errno=%d: %s\n", fd, errno, strerror (errno)); > return 0; > } > $ ./foo > fd=3, errno=0: No error > $ ls -F oops broken > broken@ oops > > According to POSIX, this should have failed with EEXIST, and oops should > not have been created.
If I understand this right, it means that O_EXCL implies not following symlinks. I've applied a matching patch to CVS. Please give it a try. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/