Revision: 15693
          http://gar.svn.sourceforge.net/gar/?rev=15693&view=rev
Author:   bdwalton
Date:     2011-09-20 19:54:59 +0000 (Tue, 20 Sep 2011)
Log Message:
-----------
rsync/branches/3.1.0dev: incorporate the O_NOFOLLOW modification from the 
updated 3.1.0dev upstream tarball

Modified Paths:
--------------
    csw/mgar/pkg/rsync/branches/3.1.0dev/Makefile
    csw/mgar/pkg/rsync/branches/3.1.0dev/checksums

Removed Paths:
-------------
    
csw/mgar/pkg/rsync/branches/3.1.0dev/files/0005-Modify-syscall.c-do_readlink-for-systems-without-O_N.patch

Modified: csw/mgar/pkg/rsync/branches/3.1.0dev/Makefile
===================================================================
--- csw/mgar/pkg/rsync/branches/3.1.0dev/Makefile       2011-09-20 19:47:51 UTC 
(rev 15692)
+++ csw/mgar/pkg/rsync/branches/3.1.0dev/Makefile       2011-09-20 19:54:59 UTC 
(rev 15693)
@@ -21,7 +21,6 @@
 PATCHFILES += 0002-Testsuite-Honour-PATH-when-finding-fakeroot.patch
 PATCHFILES += 0003-Testsuite-Honour-PATH-when-finding-sh.patch
 PATCHFILES += 0004-Testsuite-Extend-xattr-manipulation-for-Solaris.patch
-PATCHFILES += 0005-Modify-syscall.c-do_readlink-for-systems-without-O_N.patch
 
 VERSION_FLAG_PATCH = 1
 

Modified: csw/mgar/pkg/rsync/branches/3.1.0dev/checksums
===================================================================
--- csw/mgar/pkg/rsync/branches/3.1.0dev/checksums      2011-09-20 19:47:51 UTC 
(rev 15692)
+++ csw/mgar/pkg/rsync/branches/3.1.0dev/checksums      2011-09-20 19:54:59 UTC 
(rev 15693)
@@ -1 +1 @@
-1e5beb2479cec3c91d87a0302c373e6b  rsync-3.1.0dev.tar.gz
+bc92b00c1655727ef7bf4bd7543c22f6  rsync-3.1.0dev.tar.gz

Deleted: 
csw/mgar/pkg/rsync/branches/3.1.0dev/files/0005-Modify-syscall.c-do_readlink-for-systems-without-O_N.patch
===================================================================
--- 
csw/mgar/pkg/rsync/branches/3.1.0dev/files/0005-Modify-syscall.c-do_readlink-for-systems-without-O_N.patch
  2011-09-20 19:47:51 UTC (rev 15692)
+++ 
csw/mgar/pkg/rsync/branches/3.1.0dev/files/0005-Modify-syscall.c-do_readlink-for-systems-without-O_N.patch
  2011-09-20 19:54:59 UTC (rev 15693)
@@ -1,58 +0,0 @@
-From 21a3d63ffa75c0b462bd66a266b99ccc7c6b4636 Mon Sep 17 00:00:00 2001
-From: Ben Walton <bwal...@opencsw.org>
-Date: Sat, 17 Sep 2011 12:42:39 -0400
-Subject: [PATCH] Modify syscall.c:do_readlink for systems without O_NOFOLLOW
-
-To facilitate systems without O_NOFOLLOW (eg: Solaris 9), add
-conditional handling of the open() call with two stat() checks
-bracketing it.  This lets systems with extended attributes but no
-O_NOFOLLOW still support the xattr code paths.
-
-Signed-off-by: Ben Walton <bwal...@opencsw.org>
----
- syscall.c |   27 +++++++++++++++++++++++++++
- 1 files changed, 27 insertions(+), 0 deletions(-)
-
-diff --git a/syscall.c b/syscall.c
-index c6c571a..794d64a 100644
---- a/syscall.c
-+++ b/syscall.c
-@@ -87,8 +87,35 @@ ssize_t do_readlink(const char *path, char *buf, size_t 
bufsiz)
- {
-       /* For --fake-super, we read the link from the file. */
-       if (am_root < 0) {
-+#ifndef O_NOFOLLOW
-+              /* Before and After stat to detect changes during race */
-+              struct stat b_st, a_st;
-+              if (lstat(path, &b_st) != 0)
-+                      return -1;
-+
-+              if (!S_ISREG(b_st.st_mode))
-+                      return -1;
-+
-+              int fd = open(path, O_RDONLY);
-+#else
-               int fd = open(path, O_RDONLY|O_NOFOLLOW);
-+#endif
-+
-               if (fd >= 0) {
-+#ifndef O_NOFOLLOW
-+                      /* Handle the race condition...File may have been
-+                         changed between lstat() and open().  Double check
-+                         that device and inode are the same as the
-+                         pre-flight test. */
-+                      if (fstat(fd, &a_st) != 0)
-+                              return -1;
-+
-+                      /* If the file changed, bail out! */
-+                      if (a_st.st_dev != b_st.st_dev ||
-+                                      a_st.st_ino != b_st.st_ino)
-+                              return -1;
-+#endif
-+
-                       int len = read(fd, buf, bufsiz);
-                       close(fd);
-                       return len;
--- 
-1.7.6.1
-

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

_______________________________________________
devel mailing list
devel@lists.opencsw.org
https://lists.opencsw.org/mailman/listinfo/devel

Reply via email to