diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2010-09-10 22:51:44 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2010-09-10 22:51:44 +0400 |
commit | 396561aa0b5a2b220920ce515799d5a35b03a8cc (patch) | |
tree | d3c1a79dabfc0cf63c088a89e874a96038521191 | |
parent | 4e8f539f158b9d3413d0b88ce2fb8f70733139d8 (diff) |
* syscalls.cc (fstatat): Call stat_worker directly from here.
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/syscalls.cc | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index a6b39b28c..e5bb70a90 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,9 @@ 2010-09-10 Corinna Vinschen <corinna@vinschen.de> + * syscalls.cc (fstatat): Call stat_worker directly from here. + +2010-09-10 Corinna Vinschen <corinna@vinschen.de> + * flock.cc (allow_others_to_sync): Define MAX_PROCESS_SD_SIZE. Use instead of ACL_DEFAULT_SIZE. * sec_acl.cc (setacl): Use TLS buffer to allow maximum ACL size. diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 2d0cdc36c..5c1ec504b 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -4153,7 +4153,10 @@ fstatat (int dirfd, const char *pathname, struct __stat64 *st, int flags) char *path = tp.c_get (); if (gen_full_path_at (path, dirfd, pathname)) return -1; - return (flags & AT_SYMLINK_NOFOLLOW) ? lstat64 (path, st) : stat64 (path, st); + path_conv pc (path, ((flags & AT_SYMLINK_NOFOLLOW) + ? PC_SYM_NOFOLLOW : PC_SYM_FOLLOW) + | PC_POSIX | PC_KEEP_HANDLE, stat_suffixes); + return stat_worker (pc, st); } extern int utimens_worker (path_conv &, const struct timespec *); |