[SCM] Samba Shared Repository - branch v3-4-test updated

Karolin Seeger kseeger at samba.org
Mon Oct 19 00:42:03 MDT 2009


The branch, v3-4-test has been updated
       via  d8c7a5a... Fix symlink calls in all vfs modules.
      from  ece84bf... s3:packaging: Fix building RHEL packages.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test


- Log -----------------------------------------------------------------
commit d8c7a5aafe0c17c69013766022418edcec481f8c
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Oct 19 08:39:23 2009 +0200

    Fix symlink calls in all vfs modules.
    
    Additional patch to fix bug #6769.

-----------------------------------------------------------------------

Summary of changes:
 source3/Makefile.in                   |    6 ++--
 source3/configure.in                  |    4 ++
 source3/modules/nfs4_acls.c           |    8 ++++-
 source3/modules/vfs_afsacl.c          |    8 ++++-
 source3/modules/vfs_hpuxacl.c         |    8 ++++-
 source3/modules/vfs_xattr_tdb.c       |   52 +++++++++++++++++++++++++++++----
 source3/script/tests/test_local_s3.sh |    6 ++-
 7 files changed, 78 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 97b86fc..1484e11 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -212,7 +212,7 @@ BIN_PROGS4 = bin/ldbedit at EXEEXT@ bin/ldbsearch at EXEEXT@ bin/ldbadd at EXEEXT@ \
 TORTURE_PROGS = bin/smbtorture at EXEEXT@ bin/msgtest at EXEEXT@ \
 	bin/masktest at EXEEXT@ bin/locktest at EXEEXT@ \
 	bin/locktest2 at EXEEXT@ bin/nsstest at EXEEXT@ bin/vfstest at EXEEXT@ \
-	bin/pdbtest at EXEEXT@ bin/talloctort at EXEEXT@ bin/replacetort at EXEEXT@ \
+	bin/pdbtest at EXEEXT@ @BIN_TALLOCTORT@ bin/replacetort at EXEEXT@ \
 	bin/tdbtorture at EXEEXT@ \
 	bin/smbconftort at EXEEXT@ bin/vlp at EXEEXT@
 
@@ -220,7 +220,7 @@ BIN_PROGS = @EXTRA_BIN_PROGS@ \
 	$(BIN_PROGS1) $(BIN_PROGS2) $(BIN_PROGS3) $(BIN_PROGS4) 
 
 EVERYTHING_PROGS = bin/debug2html at EXEEXT@ bin/smbfilter at EXEEXT@ \
-	bin/talloctort at EXEEXT@ bin/replacetort at EXEEXT@ \
+	@BIN_TALLOCTORT@ bin/replacetort at EXEEXT@ \
 	bin/log2pcap at EXEEXT@ \
 	bin/vlp at EXEEXT@ bin/smbiconv at EXEEXT@ \
 	bin/dbwrap_tool at EXEEXT@
@@ -1276,7 +1276,7 @@ samba3-idl::
 #####################################################################
 
 
-everything:: all libtalloc libsmbclient libnetapi debug2html smbfilter talloctort replacetort smbconftort modules torture \
+everything:: all libtalloc libsmbclient libnetapi debug2html smbfilter @TALLOCTORT@ replacetort smbconftort modules torture \
 	$(EVERYTHING_PROGS)
 
 .SUFFIXES:
diff --git a/source3/configure.in b/source3/configure.in
index 74012ed..dde0c6c 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -4750,6 +4750,10 @@ then
 		LIBTALLOC_OBJ0="${LIBTALLOC_OBJ0} ${tallocdir}/${obj}"
 	done
 	AC_SUBST(LIBTALLOC_OBJ0)
+	BIN_TALLOCTORT="bin/talloctort"
+	AC_SUBST(BIN_TALLOCTORT)
+	TALLOCTORT="talloctort"
+	AC_SUBST(TALLOCTORT)
 else
 	LIBTALLOC_LIBS="${TALLOC_LIBS}"
 fi
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
index 462e593..e58b294 100644
--- a/source3/modules/nfs4_acls.c
+++ b/source3/modules/nfs4_acls.c
@@ -165,10 +165,16 @@ static int smbacl4_GetFileOwner(struct connection_struct *conn,
 				const char *filename,
 				SMB_STRUCT_STAT *psbuf)
 {
+	int ret;
 	memset(psbuf, 0, sizeof(SMB_STRUCT_STAT));
 
 	/* Get the stat struct for the owner info. */
-	if (SMB_VFS_STAT(conn, filename, psbuf) != 0)
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(conn, filename, psbuf);
+	} else {
+		ret = SMB_VFS_STAT(conn, filename, psbuf);
+	}
+	if (ret == -1)
 	{
 		DEBUG(8, ("SMB_VFS_STAT failed with error %s\n",
 			strerror(errno)));
diff --git a/source3/modules/vfs_afsacl.c b/source3/modules/vfs_afsacl.c
index 8c89d2f..9588c2d 100644
--- a/source3/modules/vfs_afsacl.c
+++ b/source3/modules/vfs_afsacl.c
@@ -660,9 +660,15 @@ static size_t afs_to_nt_acl(struct afs_acl *afs_acl,
 			    struct security_descriptor **ppdesc)
 {
 	SMB_STRUCT_STAT sbuf;
+	int ret;
 
 	/* Get the stat struct for the owner info. */
-	if(SMB_VFS_STAT(conn, name, &sbuf) != 0) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(conn, name, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(conn, name, &sbuf);
+	}
+	if (ret == -1) {
 		return 0;
 	}
 
diff --git a/source3/modules/vfs_hpuxacl.c b/source3/modules/vfs_hpuxacl.c
index f929340..e75a9c6 100644
--- a/source3/modules/vfs_hpuxacl.c
+++ b/source3/modules/vfs_hpuxacl.c
@@ -248,7 +248,13 @@ int hpuxacl_sys_acl_set_file(vfs_handle_struct *handle,
 	 * that has _not_ been specified in "type" from the file first 
 	 * and concatenate it with the acl provided.
 	 */
-	if (SMB_VFS_STAT(handle->conn, name, &s) != 0) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, name, &s);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, name, &s);
+	}
+
+	if (ret != 0) {
 		DEBUG(10, ("Error in stat call: %s\n", strerror(errno)));
 		goto done;
 	}
diff --git a/source3/modules/vfs_xattr_tdb.c b/source3/modules/vfs_xattr_tdb.c
index 4e37ed6..3fe8f6d 100644
--- a/source3/modules/vfs_xattr_tdb.c
+++ b/source3/modules/vfs_xattr_tdb.c
@@ -212,10 +212,17 @@ static ssize_t xattr_tdb_getxattr(struct vfs_handle_struct *handle,
 	SMB_STRUCT_STAT sbuf;
 	struct file_id id;
 	struct db_context *db;
+	int ret;
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
-	if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, path, &sbuf);
+	}
+
+	if (ret == -1) {
 		return -1;
 	}
 
@@ -334,10 +341,17 @@ static int xattr_tdb_setxattr(struct vfs_handle_struct *handle,
 	SMB_STRUCT_STAT sbuf;
 	struct file_id id;
 	struct db_context *db;
+	int ret;
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
-	if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, path, &sbuf);
+	}
+
+	if (ret == -1) {
 		return -1;
 	}
 
@@ -439,10 +453,17 @@ static ssize_t xattr_tdb_listxattr(struct vfs_handle_struct *handle,
 	SMB_STRUCT_STAT sbuf;
 	struct file_id id;
 	struct db_context *db;
+	int ret;
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
-	if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, path, &sbuf);
+	}
+
+	if (ret == -1) {
 		return -1;
 	}
 
@@ -539,10 +560,17 @@ static int xattr_tdb_removexattr(struct vfs_handle_struct *handle,
 	SMB_STRUCT_STAT sbuf;
 	struct file_id id;
 	struct db_context *db;
+	int ret;
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
-	if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, path, &sbuf);
+	}
+
+	if (ret == -1) {
 		return -1;
 	}
 
@@ -621,7 +649,13 @@ static int xattr_tdb_unlink(vfs_handle_struct *handle, const char *path)
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
-	if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, path, &sbuf);
+	}
+
+	if (ret == -1) {
 		return -1;
 	}
 
@@ -660,7 +694,13 @@ static int xattr_tdb_rmdir(vfs_handle_struct *handle, const char *path)
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
-	if (SMB_VFS_STAT(handle->conn, path, &sbuf) == -1) {
+	if (lp_posix_pathnames()) {
+		ret = SMB_VFS_LSTAT(handle->conn, path, &sbuf);
+	} else {
+		ret = SMB_VFS_STAT(handle->conn, path, &sbuf);
+	}
+
+	if (ret == -1) {
 		return -1;
 	}
 
diff --git a/source3/script/tests/test_local_s3.sh b/source3/script/tests/test_local_s3.sh
index 1840779..79e4848 100755
--- a/source3/script/tests/test_local_s3.sh
+++ b/source3/script/tests/test_local_s3.sh
@@ -16,8 +16,10 @@ incdir=`dirname $0`
 
 failed=0
 
-testit "talloctort" $VALGRIND $BINDIR/talloctort || \
-    failed=`expr $failed + 1`
+test -x $BINDIR/talloctort && {
+	testit "talloctort" $VALGRIND $BINDIR/talloctort || \
+	    failed=`expr $failed + 1`
+}
 
 testit "replacetort" $VALGRIND $BINDIR/replacetort || \
     failed=`expr $failed + 1`


-- 
Samba Shared Repository


More information about the samba-cvs mailing list