Christian Weisgerber <[email protected]> wrote: > > maybe_recoverable should execute this code: > > > > if (*interdir_made) > > return RECOVER_NO; > > > > switch (e) > > { > > case ELOOP: > > The problem turns out to be very straightforward: On FreeBSD, the > open() call returns -1 with errno=EMLINK. This is documented > behavior in FreeBSD's open(2) man page: > > [EMLINK] O_NOFOLLOW was specified and the target is a symbolic > link. > > Adding EMLINK to the ELOOP case in maybe_recoverable fixes this (and > doesn't break any other regression tests).
The POSIX standard requires errno to be ELOOP in this case. Jörg -- EMail:[email protected] (home) Jörg Schilling D-13353 Berlin [email protected] (uni) [email protected] (work) Blog: http://schily.blogspot.com/ URL: http://cdrecord.berlios.de/private/ ftp://ftp.berlios.de/pub/schily
