[SCM] Samba Shared Repository - branch v3-2-stable updated - release-3-2-3-77-g05fa57f

Karolin Seeger kseeger at samba.org
Thu Sep 11 11:49:45 GMT 2008


The branch, v3-2-stable has been updated
       via  05fa57f29ea5b9a28ad73b44077d3ab526bb079e (commit)
       via  ff6e94180e00fcaaeb003dee73fd0a6603d8a2e1 (commit)
       via  1cac6185bdee2cad3af6b6447b6b291cc9b473ac (commit)
       via  15558d604718e1c5b7f1d65cfaa539a596154901 (commit)
       via  20f67e47b0caf8621008599604007fc4f59d1060 (commit)
       via  4f6f37a3995e48f060631fb559ff0ea08903eb66 (commit)
       via  43670297d25e66e8aa5cc5ca014e04937155ae76 (commit)
       via  f95b12dc6a2b4d5d1a549b705ae5933cf6d25684 (commit)
       via  e48f855fd72dc150d49641a13bb2a72721e006a5 (commit)
      from  627832e5f7ed6c82c227a55a9fdcc5bff25242ff (commit)

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


- Log -----------------------------------------------------------------
commit 05fa57f29ea5b9a28ad73b44077d3ab526bb079e
Author: Karolin Seeger <kseeger at samba.org>
Date:   Thu Sep 11 13:48:25 2008 +0200

    WHATSNEW: Update changes since 3.2.3.
    
    Karolin
    (cherry picked from commit b17f9ecc8e8beb40f798dd47f3440811e8d07e81)

commit ff6e94180e00fcaaeb003dee73fd0a6603d8a2e1
Author: Michael Adam <obnox at samba.org>
Date:   Wed Sep 10 23:31:26 2008 +0200

    packaging(RHEL): fix direction of link (.so) of nss libs.
    
    libnss_winbindd.so -> libnss_winbindd.so.2
    libnss_wins.so -> libnss_wins.so.2
    
    Michael
    (cherry picked from commit d63cd755220aba591709917c729e028a913bec5d)

commit 1cac6185bdee2cad3af6b6447b6b291cc9b473ac
Author: Michael Adam <obnox at samba.org>
Date:   Wed Sep 10 13:48:13 2008 +0200

    packaging(RHEL): workaround all library installations by mv to %{_libarchdir}
    
    This is all that is still necessary in 3.2.3+.
    (The eloquent workarounds for libsmbclient and libsmbsharemodes
    are removed.)
    In 3.3.0, with the separation of libdir and modulesdir, even this
    step becomes unnecessary.
    
    Michael
    (cherry picked from commit fe8448fe8f7ee0d33631366503163d3b2ee3eded)

commit 15558d604718e1c5b7f1d65cfaa539a596154901
Author: Michael Adam <obnox at samba.org>
Date:   Wed Sep 10 13:46:07 2008 +0200

    packaging(RHEL): remove even another manual installation of pam_smbpass.so
    
    Michael
    (cherry picked from commit 08b43cbd04cf8894e91f1182b222f8dd1c90659d)

commit 20f67e47b0caf8621008599604007fc4f59d1060
Author: Michael Adam <obnox at samba.org>
Date:   Mon Sep 8 15:51:33 2008 +0200

    packaging(RHEL): fix installation of pam modules.
    
    Michael
    (cherry picked from commit e97c52d38424c45b34e5d3b5dc2f4b2b3a1b9b31)

commit 4f6f37a3995e48f060631fb559ff0ea08903eb66
Author: Michael Adam <obnox at samba.org>
Date:   Fri Aug 29 16:55:55 2008 +0200

    packaging(RHEL): fix libdir installation by using _libarch/_libarchdir
    
    Michael
    (cherry picked from commit cf13475d4d5cfe968d694d49b8fd0f6020c5a9d8)

commit 43670297d25e66e8aa5cc5ca014e04937155ae76
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 10 16:21:25 2008 -0700

    Fix bug #5052 - not work cancel inheritance on share. We were
    using the parent security descriptor type and flags instead
    of using the passed in SD.
    Jeremy.
    (cherry picked from commit c22bf57329f16a45eb0954b72f8083270f6535e7)

commit f95b12dc6a2b4d5d1a549b705ae5933cf6d25684
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 10 14:52:34 2008 -0700

    When requesting UNIX info levels on findfirst/findnext, don't play games with write time,
    just return what the underlying filesystem says. Trying not to confuse UNIX apps any more than necessary.
    Jeremy.
    (cherry picked from commit 4e06c71a12654d78c9a94fb023e372920bf7618b)

commit e48f855fd72dc150d49641a13bb2a72721e006a5
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Sep 10 10:16:42 2008 -0700

    Fix blocker bug 5745 kerberos authentication with (lib)smbclient is broken.
    Jeremy.
    (cherry picked from commit 738729cad0b88a2f453d61d38e1088003afd0a9e)

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

Summary of changes:
 WHATSNEW.txt                   |    2 +
 packaging/RHEL/samba.spec.tmpl |   87 ++++++++++++++++++++-------------------
 source/libsmb/clikrb5.c        |   21 ++++++----
 source/smbd/posix_acls.c       |   13 +++++-
 source/smbd/trans2.c           |    6 ++-
 5 files changed, 75 insertions(+), 54 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index c1eb68f..12959de 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -28,11 +28,13 @@ o   Michael Adam <obnox at samba.org>
 
 
 o   Jeremy Allison <jra at samba.org>
+    * BUG 5052: Allow inheritable permissions.
     * BUG 5697: Fix spinning of nmbd in reload_interfaces when only loopback
       has an IPv4 address.
     * BUG 5698: Fix non guest connections to shares when "security = share"
       is used.
     * BUG 5729: Explicitly allow "-valid".
+    * BUG 5745: Fix Kerberos authentication with (lib)smbclient.
     * Fix the wcache_invalidate_samlogon calls.
     * Add st_birthtime and friends for accurate create times on *BSD and MacOSX.
     * Clarify usage of "force create mode".
diff --git a/packaging/RHEL/samba.spec.tmpl b/packaging/RHEL/samba.spec.tmpl
index 8c34a4a..49a0109 100644
--- a/packaging/RHEL/samba.spec.tmpl
+++ b/packaging/RHEL/samba.spec.tmpl
@@ -33,6 +33,15 @@ BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-deve
 # Working around perl dependency problem from docs
 %define __perl_requires %{SOURCE998}
 
+# rpm screws up the arch lib dir when using --target on RHEL5
+%ifarch i386 i486 i586 i686 ppc s390
+%define _libarch lib
+%else
+%define _libarch %_lib
+%endif
+
+%define _libarchdir /usr/%{_libarch}
+
 
 %description
 Samba is the protocol by which a lot of PC-related machines share
@@ -127,7 +136,8 @@ CC="$CC" CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
 	--prefix=%{_prefix} \
 	--localstatedir=/var \
         --with-configdir=%{_sysconfdir}/samba \
-        --with-libdir=%{_libdir}/samba \
+        --with-libdir=%{_libarchdir}/samba \
+	--with-pammodulesdir=%{_libarch}/security \
         --with-lockdir=/var/lib/samba \
         --with-logfilebase=/var/log/samba \
         --with-mandir=%{_mandir} \
@@ -187,9 +197,9 @@ rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
 mkdir -p $RPM_BUILD_ROOT%{_includedir}
 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
-mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
-mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
+mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
+mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
+mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
 mkdir -p $RPM_BUILD_ROOT%{_mandir}
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
@@ -207,31 +217,24 @@ make DESTDIR=$RPM_BUILD_ROOT \
         install
 cd ..
 
-# NSS & PAM winbind support
-install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
-install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
-install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
-( cd $RPM_BUILD_ROOT/%{_lib};
-  ln -sf libnss_winbind.so  libnss_winbind.so.2;
-  ln -sf libnss_wins.so  libnss_wins.so.2 )
-
-# make install puts libsmbclient.so in the wrong place on x86_64
-rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
-install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
-install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
-install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
-ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
-
-# make install puts libsmbsharemodes.so in the wrong place on x86_64
-rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.a || true
-install -m 755 source/bin/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so
-install -m 755 source/bin/libsmbsharemodes.a $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.a
-install -m 644 source/include/smb_share_modes.h $RPM_BUILD_ROOT%{_includedir}
-rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbsharemodes.*
-ln -s /%{_libdir}/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so.0
-
-# Install pam_smbpass.so
-install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
+# NSS winbind support
+install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
+install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so.2
+( cd $RPM_BUILD_ROOT/%{_libarch};
+  ln -sf libnss_winbind.so.2  libnss_winbind.so;
+  ln -sf libnss_wins.so.2  libnss_wins.so )
+
+# Put the shared (and possibly static) libraries into /usr/lib{,64}/ .
+# Samba 3.2.2 installs them into /usr/lib{,64}/samba/ .
+# This step will become unnecessary in 3.3.0.
+#
+for library in libsmbclient libsmbsharemodes libwbclient libtalloc libtdb
+libnetapi
+do
+	mv -f ${RPM_BUILD_ROOT}%{_libarchdir}/samba/${library}.* \
+		${RPM_BUILD_ROOT}%{_libarchdir}/
+done
+
 
 ## cleanup
 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
@@ -354,10 +357,10 @@ fi
 %{_bindir}/pdbedit
 %{_bindir}/eventlogadm
 
-%{_libdir}/samba/idmap/*.so
-%{_libdir}/samba/nss_info/*.so
-%{_libdir}/samba/vfs/*.so
-%{_libdir}/samba/auth/*.so
+%{_libarchdir}/samba/idmap/*.so
+%{_libarchdir}/samba/nss_info/*.so
+%{_libarchdir}/samba/vfs/*.so
+%{_libarchdir}/samba/auth/*.so
 
 %{_mandir}/man1/smbcontrol.1*
 %{_mandir}/man1/smbstatus.1*
@@ -447,19 +450,19 @@ fi
 %config(noreplace) %{_sysconfdir}/samba/smb.conf
 %config(noreplace) %{_sysconfdir}/samba/lmhosts
 
-%attr(755,root,root) /%{_lib}/libnss_wins.so*
-%attr(755,root,root) /%{_lib}/libnss_winbind.so*
-%attr(755,root,root) /%{_lib}/security/pam_winbind.so
-%attr(755,root,root) /%{_lib}/security/pam_smbpass.so
+%attr(755,root,root) /%{_libarch}/libnss_wins.so*
+%attr(755,root,root) /%{_libarch}/libnss_winbind.so*
+%attr(755,root,root) /%{_libarch}/security/pam_winbind.so
+%attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
 
 %{_includedir}/libsmbclient.h
-%{_libdir}/libsmbclient.*
+%{_libarchdir}/libsmbclient.*
 %{_includedir}/smb_share_modes.h
-%{_libdir}/libsmbsharemodes.*
+%{_libarchdir}/libsmbsharemodes.*
 
-%{_libdir}/samba/*.dat
-%{_libdir}/samba/*.msg
-%{_libdir}/samba/charset/*.so
+%{_libarchdir}/samba/*.dat
+%{_libarchdir}/samba/*.msg
+%{_libarchdir}/samba/charset/*.so
 
 %{_includedir}/netapi.h
 %{_includedir}/wbclient.h
diff --git a/source/libsmb/clikrb5.c b/source/libsmb/clikrb5.c
index a7ca24f..66dd5f6 100644
--- a/source/libsmb/clikrb5.c
+++ b/source/libsmb/clikrb5.c
@@ -743,16 +743,21 @@ static krb5_error_code ads_krb5_mk_req(krb5_context context,
 						ccache,
 						&in_data );
 		if (retval) {
-			DEBUG( 1, ("ads_krb5_get_fwd_ticket failed (%s)\n", error_message( retval ) ) );
-			goto cleanup_creds;
-		}
+			DEBUG( 3, ("ads_krb5_get_fwd_ticket failed (%s)\n", error_message( retval ) ) );
 
-		if (retval) {
-			DEBUG( 1, ("krb5_auth_con_set_req_cksumtype failed (%s)\n",
-				error_message( retval ) ) );
-			goto cleanup_creds;
-		}
+			/*
+			 * This is not fatal. Delete the *auth_context and continue
+			 * with krb5_mk_req_extended to get a non-forwardable ticket.
+			 */
 
+			if (in_data.data) {
+				free( in_data.data );
+				in_data.data = NULL;
+				in_data.length = 0;
+			}
+			krb5_auth_con_free(context, *auth_context);
+			*auth_context = NULL;
+		}
 	}
 #endif
 
diff --git a/source/smbd/posix_acls.c b/source/smbd/posix_acls.c
index 86934f9..d798fa8 100644
--- a/source/smbd/posix_acls.c
+++ b/source/smbd/posix_acls.c
@@ -3400,10 +3400,17 @@ static NTSTATUS append_parent_acl(files_struct *fsp,
 			parent_name));
 	}
 
-	parent_sd->dacl->aces = new_ace;
-	parent_sd->dacl->num_aces = i;
+	/* This sucks. psd should be const and we should
+	 * be doing a deep-copy here. We're getting away
+	 * with is as we know parent_sd is talloced off
+	 * talloc_tos() as well as psd. JRA. */
 
-	*pp_new_sd = parent_sd;
+	psd->dacl->aces = new_ace;
+	psd->dacl->num_aces = i;
+	psd->type &= ~(SE_DESC_DACL_AUTO_INHERITED|
+                         SE_DESC_DACL_AUTO_INHERIT_REQ);
+
+	*pp_new_sd = psd;
 	return status;
 }
 
diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c
index 7753fad..13105dc 100644
--- a/source/smbd/trans2.c
+++ b/source/smbd/trans2.c
@@ -1938,6 +1938,8 @@ close_if_end = %d requires_resume_key = %d level = 0x%x, max_data_bytes = %d\n",
 			break;
 		case SMB_FIND_FILE_UNIX:
 		case SMB_FIND_FILE_UNIX_INFO2:
+			/* Always use filesystem for UNIX mtime query. */
+			ask_sharemode = false;
 			if (!lp_unix_extensions()) {
 				reply_nterror(req, NT_STATUS_INVALID_LEVEL);
 				return;
@@ -2295,6 +2297,8 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
 			break;
 		case SMB_FIND_FILE_UNIX:
 		case SMB_FIND_FILE_UNIX_INFO2:
+			/* Always use filesystem for UNIX mtime query. */
+			ask_sharemode = false;
 			if (!lp_unix_extensions()) {
 				reply_nterror(req, NT_STATUS_INVALID_LEVEL);
 				return;
@@ -4132,7 +4136,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
 		}
 	}
 
-	if (!null_timespec(write_time_ts)) {
+	if (!null_timespec(write_time_ts) && !INFO_LEVEL_IS_UNIX(info_level)) {
 		mtime_ts = write_time_ts;
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list