The branch, v3-5-test has been updated
       via  9180559... Fix one missing STAT -> LSTAT with POSIX pathnames in 
vfs_xattr_tdb.c. Caught by the torture tester. I love unit tests :-). Jeremy.
       via  bf68418... s3: build pam_smbpass when possible
      from  f2b9430... nsswitch: increase libwbclient version after adding 
wbcChangeTrustCredentials().

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


- Log -----------------------------------------------------------------
commit 9180559b4ab26813699d3c1410b3fc1b775b0e1d
Author: Jeremy Allison <[email protected]>
Date:   Fri Oct 16 16:37:20 2009 -0700

    Fix one missing STAT -> LSTAT with POSIX pathnames in vfs_xattr_tdb.c. 
Caught by the torture tester. I love unit tests :-). Jeremy.

commit bf684180b0bdc93438ab86b102e5883d70bcea6a
Author: Björn Jacke <[email protected]>
Date:   Fri Oct 16 23:40:34 2009 +0200

    s3: build pam_smbpass when possible

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

Summary of changes:
 source3/configure.in                      |   54 ++++++++++++++++++-----------
 source3/modules/vfs_xattr_tdb.c           |    8 ++++-
 source3/script/tests/test_smbclient_s3.sh |    2 +
 3 files changed, 43 insertions(+), 21 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/configure.in b/source3/configure.in
index e07d022..0599864 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -4221,31 +4221,45 @@ fi # try_pam != no
 PAM_MODULES=""
 INSTALL_PAM_MODULES=""
 UNINSTALL_PAM_MODULES=""
+
+try_pam_smbpass=auto
 AC_MSG_CHECKING(whether to use pam_smbpass)
 AC_ARG_WITH(pam_smbpass,
-[AS_HELP_STRING([--with-pam_smbpass], [Build PAM module for authenticating 
against passdb backends (default=no)])],
+[AS_HELP_STRING([--with-pam_smbpass], [Build PAM module for authenticating 
against passdb backends (default=auto)])],
 [ case "$withval" in
-  yes)
-    AC_MSG_RESULT(yes)
+  yes|no|auto)
+    try_pam_smbpass=$withval
+  ;;
+  *)
+    AC_MSG_ERROR([valid options are yes,no,auto])
+  ;;
+  esac
+])
 
-       # Conditions under which pam_smbpass should not be built.
+if test x"${try_pam_smbpass}" = xno ; then
+       use_pam_smbpass=no
+else
+       use_pam_smbpass=yes
+       # Conditions under which pam_smbpass can't be built.
+       if test x"$BLDSHARED" != xtrue ; then
+               if test x"${try_pam_smbpass}" = xyes ; then
+                       AC_MSG_ERROR([No support for shared modules])
+               fi
+               use_pam_smbpass=no
+       elif test x"$create_pam_modules" != xyes ; then
+               if test x"${try_pam_smbpass}" = xyes ; then
+                       AC_MSG_ERROR([No support for PAM MODULES])
+               fi
+               use_pam_smbpass=no
+       fi
 
-       if test x"$BLDSHARED" != x"true"; then
-          AC_MSG_ERROR([No support for shared modules])
-       elif test x"$create_pam_modules" != x"yes"; then
-         AC_MSG_ERROR([No support for PAM MODULES])
-       else
-          PAM_MODULES="pam_smbpass"
-          INSTALL_PAM_MODULES="installpammodules"
-          UNINSTALL_PAM_MODULES="uninstallpammodules"
-       fi
-    ;;
-  *)
-    AC_MSG_RESULT(no)
-    ;;
-  esac ],
-  AC_MSG_RESULT(no)
-)
+       if test x"${use_pam_smbpass}" = xyes ; then 
+               PAM_MODULES="pam_smbpass"
+               INSTALL_PAM_MODULES="installpammodules"
+               UNINSTALL_PAM_MODULES="uninstallpammodules"
+       fi
+fi
+AC_MSG_RESULT([$use_pam_smbpass])
 
 
 ##
diff --git a/source3/modules/vfs_xattr_tdb.c b/source3/modules/vfs_xattr_tdb.c
index 55fb141..f7fbfce 100644
--- a/source3/modules/vfs_xattr_tdb.c
+++ b/source3/modules/vfs_xattr_tdb.c
@@ -630,9 +630,15 @@ static int xattr_tdb_unlink(vfs_handle_struct *handle,
                return -1;
        }
 
-       if (SMB_VFS_STAT(handle->conn, smb_fname_tmp) == -1) {
+       if (lp_posix_pathnames()) {
+               ret = SMB_VFS_LSTAT(handle->conn, smb_fname_tmp);
+       } else {
+               ret = SMB_VFS_STAT(handle->conn, smb_fname_tmp);
+       }
+       if (ret == -1) {
                goto out;
        }
+
        if (smb_fname_tmp->st.st_ex_nlink == 1) {
                /* Only remove record on last link to file. */
                remove_record = true;
diff --git a/source3/script/tests/test_smbclient_s3.sh 
b/source3/script/tests/test_smbclient_s3.sh
index b0199a3..f10bfea 100755
--- a/source3/script/tests/test_smbclient_s3.sh
+++ b/source3/script/tests/test_smbclient_s3.sh
@@ -94,6 +94,7 @@ test_bad_symlink()
 
     cat > $tmpfile <<EOF
 posix
+posix_unlink newname
 symlink badname newname
 posix_unlink newname
 quit
@@ -118,6 +119,7 @@ EOF
        # got the correct prompt .. succeed
        true
     else
+       echo "$out"
        echo failed create then delete bad symlink
        false
     fi


-- 
Samba Shared Repository

Reply via email to