open /dev/null O_NOFOLLOW fails with ELOOP
gs-cygwin.com@gluelogic.com
gs-cygwin.com@gluelogic.com
Wed Dec 21 11:15:27 GMT 2022
open /dev/null O_NOFOLLOW fails with ELOOP
Windows 10, 64-bit cygwin
Failed with my existing install, then I ran setup.exe, updated to
latest, and my tests still failed.
a.c
---
#include <sys/types.h>
#include <fcntl.h>
#include <stdio.h>
int main (void)
{
int fd = open("/dev/null", O_RDWR | O_NOFOLLOW, 0);
if (fd < 0)
perror("open(/dev/null)");
return fd;
}
$ gcc a.c ; ./a.exe
open(/dev/null): Too many levels of symbolic links
While troubleshooting this, there were times where it succeeded and then
times where it failed, though it failed most of the time. It did not
fail (or succeed) randomly, but seemingly in streaks.
Trying to start lighttpd seems to run into this bug reliably,
$ /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
In the next release of lighttpd, I may end up omitting O_NOFOLLOW
if __CYGWIN__ is defined.
Cheers, Glenn
More information about the Cygwin
mailing list