The branch, master has been updated via de21910 Change stat order for better ELOOP determination. from 79853c3 Be sure to use STRUCT_STAT.
;a=shortlog;h=master - Log ----------------------------------------------------------------- commit de219101ed2d1eca188c37f9a06b9764c4ca528e Author: Wayne Davison <way...@samba.org> Date: Tue Sep 20 13:02:12 2011 -0700 Change stat order for better ELOOP determination. ----------------------------------------------------------------------- Summary of changes: syscall.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) Changeset truncated at 500 lines: diff --git a/syscall.c b/syscall.c index e2b1394..5a7c8e8 100644 --- a/syscall.c +++ b/syscall.c @@ -464,9 +464,14 @@ int do_open_nofollow(const char *pathname, int flags) #ifdef O_NOFOLLOW fd = open(pathname, flags|O_NOFOLLOW); #else + if (do_lstat(pathname, &l_st) < 0) + return -1; + if (S_ISLNK(l_st.st_mode)) { + errno = ELOOP; + return -1; + } if ((fd = open(pathname, flags)) < 0) return fd; - if (do_fstat(fd, &f_st) < 0) { close_and_return_error: { @@ -476,12 +481,6 @@ int do_open_nofollow(const char *pathname, int flags) } return -1; } - if (do_lstat(pathname, &l_st) < 0) - goto close_and_return_error; - if (S_ISLNK(l_st.st_mode)) { - errno = ELOOP; - goto close_and_return_error; - } if (l_st.st_dev != f_st.st_dev || l_st.st_ino != f_st.st_ino) { errno = EINVAL; goto close_and_return_error; -- The rsync repository. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs