* sysdeps/posix/getcwd.c (__getcwd): Don't stop processing
	directory entries when a lstat call fails.
	Patch by Colin Plumb <colin@nyx.net>.
This commit is contained in:
Ulrich Drepper 1998-10-18 15:35:09 +00:00
parent 67479a700e
commit 74f7e7c0bd
3 changed files with 11 additions and 10 deletions

View File

@ -1,5 +1,9 @@
1998-10-18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/posix/getcwd.c (__getcwd): Don't stop processing
directory entries when a lstat call fails.
Patch by Colin Plumb <colin@nyx.net>.
* resolv/nss_dns/dns-host.c: Add missing errnop parameter to the
NSS functions.
* resolv/nss_dns/dns-network.c: Likewise.

View File

@ -1,5 +1,3 @@
* If we have reached the max. # of process, close accept socket.
! THIS COULD CAUSE THE KERNEL TO HANG ! BE CAREFUL !
* Implement cache for hosts

View File

@ -333,14 +333,13 @@ __getcwd (buf, size)
name[dotlist + dotsize - dotp] = '/';
strcpy (&name[dotlist + dotsize - dotp + 1], d->d_name);
#endif
if (__lstat (name, &st) < 0)
{
int save = errno;
(void) __closedir (dirstream);
__set_errno (save);
goto lose;
}
if (st.st_dev == thisdev && st.st_ino == thisino)
/* We don't fail here if we cannot stat() a directory entry.
This can happen when (network) filesystems fail. If this
entry is in fact the one we are looking for we will find
out soon as we reach the end of the directory without
having found anything. */
if (__lstat (name, &st) >= 0
&& st.st_dev == thisdev && st.st_ino == thisino)
break;
}
}