From 905a851912b3f01baa8c797fa6e84081c84b2390 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 19 Aug 2014 19:25:54 +0000 Subject: * dir.cc (dirfd): Per POSIX, return EINVAL on invalid directory stream. (telldir): Per POSIX, return -1 and set errno to EBADF, rather than just returning 0, on invalid directory stream. * signal.cc (sigwaitinfo): Return -1, not EFAULT, when SEGV was catched. --- winsup/cygwin/dir.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'winsup/cygwin/dir.cc') diff --git a/winsup/cygwin/dir.cc b/winsup/cygwin/dir.cc index 01b9ab882..b1035ba49 100644 --- a/winsup/cygwin/dir.cc +++ b/winsup/cygwin/dir.cc @@ -33,7 +33,7 @@ dirfd (DIR *dir) return -1; if (dir->__d_cookie != __DIRENT_COOKIE) { - set_errno (EBADF); + set_errno (EINVAL); syscall_printf ("-1 = dirfd (%p)", dir); return -1; } @@ -205,7 +205,10 @@ telldir (DIR *dir) return -1; if (dir->__d_cookie != __DIRENT_COOKIE) - return 0; + { + set_errno (EBADF); + return -1; + } return ((fhandler_base *) dir->__fh)->telldir (dir); } -- cgit v1.2.3