Hello community,

here is the log from the commit of package samba for openSUSE:Factory
checked in at Thu Sep 1 12:05:56 CEST 2011.



--------
--- samba/samba.changes 2011-08-27 22:40:56.000000000 +0200
+++ /mounts/work_src_done/STABLE/samba/samba.changes    2011-08-31 
00:10:50.000000000 +0200
@@ -2 +2 @@
-Sat Aug 27 19:38:01 UTC 2011 - lmue...@suse.de
+Tue Aug 30 21:38:12 UTC 2011 - lmue...@suse.de
@@ -4 +4,2 @@
-- Optimize serverid_exists() for Solaris; (bso#8395).
+- Microsoft Word from Microsoft Office 2007 fails to save as on a share with
+  SMB2; (bso#8412).
@@ -7 +8 @@
-Sat Aug 27 19:29:37 UTC 2011 - lmue...@suse.de
+Tue Aug 30 21:29:07 UTC 2011 - lmue...@suse.de
@@ -9 +10,2 @@
-- talloc: check block count after references test.
+- Use sys_write and sys_read in fork_domain_child to fix a winbind race
+  leading to 100% CPU usage; (bso#8409).
@@ -12 +14 @@
-Sat Aug 27 19:26:06 UTC 2011 - lmue...@suse.de
+Tue Aug 30 18:41:20 UTC 2011 - lmue...@suse.de
@@ -14 +16 @@
-- talloc: added test suite for talloc_free_children().
+- Fix wrong reply to smb2 durable handle reconnect (DHnC) request; (bso#8428).
@@ -17 +19 @@
-Sat Aug 27 19:21:58 UTC 2011 - lmue...@suse.de
+Tue Aug 30 18:31:29 UTC 2011 - lmue...@suse.de
@@ -19 +21 @@
-- talloc: license info erratum in the manpage.
+- Fix infinite loop in ACL module code; (bso#8422).
@@ -22 +24 @@
-Sat Aug 27 19:08:11 UTC 2011 - lmue...@suse.de
+Mon Aug 29 19:28:54 UTC 2011 - lmue...@suse.de
@@ -24 +26 @@
-- talloc: fix typos and better differentiation between versions 1 and 2.
+- Fix getent group if trusted domains are not reachable; (bso#8420).
@@ -27 +29 @@
-Sat Aug 27 19:05:09 UTC 2011 - lmue...@suse.de
+Mon Aug 29 16:51:58 UTC 2011 - lmue...@suse.de
@@ -29 +31 @@
-- talloc: preserve context name on talloc_free_children().
+- smbclient can't access a NT4 share since 3.6.0; (bso#8385).
@@ -32 +34,6 @@
-Sat Aug 27 19:01:41 UTC 2011 - lmue...@suse.de
+Sat Aug 27 19:38:01 UTC 2011 - lmue...@suse.de
+
+- Optimize serverid_exists() for Solaris; (bso#8395).
+
+-------------------------------------------------------------------
+Sat Aug 27 19:29:37 UTC 2011 - lmue...@suse.de
@@ -34 +41,7 @@
-- talloc: ensure the sibling linked list remains valid during a free.
+- talloc:
+  + check block count after references test.
+  + added test suite for talloc_free_children().
+  + license info erratum in the manpage.
+  + fix typos and better differentiation between versions 1 and 2.
+  + preserve context name on talloc_free_children().
+  + ensure the sibling linked list remains valid during a free.

calling whatdependson for head-i586


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ samba-doc.spec ++++++
--- /var/tmp/diff_new_pack.PZFNY5/_old  2011-09-01 12:05:20.000000000 +0200
+++ /var/tmp/diff_new_pack.PZFNY5/_new  2011-09-01 12:05:20.000000000 +0200
@@ -82,7 +82,7 @@
 %endif
 Url:            http://www.samba.org/
 Version:        3.6.0
-Release:        2
+Release:        3
 License:        GPLv3+
 Summary:        Samba Documentation
 Group:          Documentation/Other
@@ -414,7 +414,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %changelog

++++++ samba.spec ++++++
--- /var/tmp/diff_new_pack.PZFNY5/_old  2011-09-01 12:05:21.000000000 +0200
+++ /var/tmp/diff_new_pack.PZFNY5/_new  2011-09-01 12:05:21.000000000 +0200
@@ -86,7 +86,7 @@
 Url:            http://www.samba.org/
 AutoReqProv:    on
 Version:        3.6.0
-Release:        2
+Release:        3
 Provides:       samba-gplv3 = %{version}-%{release}
 Obsoletes:      samba-gplv3 < %{version}
 %ifarch ppc64
@@ -184,7 +184,7 @@
     The Samba Team <sa...@samba.org>
 
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package client
@@ -224,7 +224,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %if 0%{?suse_version} == 0 || 0%{?suse_version} > 1020
@@ -251,7 +251,7 @@
     The Samba Team <sa...@samba.org>
 
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %endif
@@ -281,7 +281,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %endif
@@ -308,7 +308,7 @@
 --------
     Jeremy Allison <jra at samba dot org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %if %{make_utils}
@@ -331,7 +331,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %endif
@@ -362,7 +362,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
@@ -389,13 +389,13 @@
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
 
 %description -n libsmbclient
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %else
 
 %description -n libsmbclient0
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %endif
@@ -441,7 +441,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libnetapi0
@@ -460,7 +460,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libnetapi-devel
@@ -485,7 +485,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
@@ -507,13 +507,13 @@
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
 
 %description -n libsmbsharemodes
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %else
 
 %description -n libsmbsharemodes0
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %endif
@@ -550,7 +550,7 @@
     The Samba Team <sa...@samba.org>
 
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libwbclient0
@@ -569,7 +569,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libwbclient-devel
@@ -594,7 +594,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libtalloc2
@@ -603,7 +603,7 @@
 Group:          System/Libraries
 AutoReqProv:    on
 Version:        %{libtalloc_ver}
-Release:        2
+Release:        3
 PreReq:         /sbin/ldconfig
 
 %description -n libtalloc2
@@ -615,7 +615,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libtalloc-devel
@@ -624,7 +624,7 @@
 Group:          Development/Libraries/C and C++
 AutoReqProv:    on
 Version:        %{libtalloc_ver}
-Release:        2
+Release:        3
 %if 0%{?suse_version} > 1020
 BuildRequires:  pkg-config
 %else
@@ -642,7 +642,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libtdb1
@@ -651,7 +651,7 @@
 Group:          System/Libraries
 AutoReqProv:    on
 Version:        %{libtdb_ver}
-Release:        2
+Release:        3
 PreReq:         /sbin/ldconfig
 
 %description -n libtdb1
@@ -663,7 +663,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libtdb-devel
@@ -672,7 +672,7 @@
 Group:          Development/Libraries/C and C++
 AutoReqProv:    on
 Version:        %{libtdb_ver}
-Release:        2
+Release:        3
 #BuildRequires:  pkg-config
 Requires:       libtdb1  = %{libtdb_ver}
 
@@ -686,7 +686,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libtevent0
@@ -695,7 +695,7 @@
 Group:          System/Libraries
 AutoReqProv:    on
 Version:        %{libtevent_ver}
-Release:        2
+Release:        3
 PreReq:         /sbin/ldconfig
 
 %description -n libtevent0
@@ -707,7 +707,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libtevent-devel
@@ -716,7 +716,7 @@
 Group:          Development/Libraries/C and C++
 AutoReqProv:    on
 Version:        %{libtevent_ver}
-Release:        2
+Release:        3
 %if 0%{?suse_version} > 1020
 BuildRequires:  pkg-config
 %else
@@ -735,7 +735,7 @@
     The Samba Team <sa...@samba.org>
 
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libldb1
@@ -744,7 +744,7 @@
 Group:          System/Libraries
 AutoReqProv:    on
 Version:        %{libldb_ver}
-Release:        2
+Release:        3
 PreReq:         /sbin/ldconfig
 BuildRequires:  popt-devel
 
@@ -758,7 +758,7 @@
     The Samba Team <sa...@samba.org>
 
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %package -n libldb-devel
@@ -767,7 +767,7 @@
 Group:          Development/Libraries/C and C++
 AutoReqProv:    on
 Version:        %{libldb_ver}
-Release:        2
+Release:        3
 %if 0%{?suse_version} > 1020
 BuildRequires:  pkg-config
 %else
@@ -785,7 +785,7 @@
 --------
     The Samba Team <sa...@samba.org>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %if %{make_ldapsmb}
@@ -796,7 +796,7 @@
 Group:          Productivity/Networking/Samba
 AutoReqProv:    on
 Version:        1.34b
-Release:        304
+Release:        305
 Requires:       perl-ldap
 
 %description -n ldapsmb
@@ -809,7 +809,7 @@
 --------
     Guenther Deschner <guenther at deschner dot de>
 
-Source Timestamp: 2610
+Source Timestamp: 2622
 Branch      : trunk
 
 %endif

++++++ build-source-timestamp ++++++
--- /var/tmp/diff_new_pack.PZFNY5/_old  2011-09-01 12:05:21.000000000 +0200
+++ /var/tmp/diff_new_pack.PZFNY5/_new  2011-09-01 12:05:21.000000000 +0200
@@ -1,2 +1,2 @@
-2610
+2622
 Branch      : trunk

++++++ patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/11ab2d68023dbfd9089a7e2ec2d36ef4f1f7974e 
new/patches/samba.org/11ab2d68023dbfd9089a7e2ec2d36ef4f1f7974e
--- old/patches/samba.org/11ab2d68023dbfd9089a7e2ec2d36ef4f1f7974e      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/11ab2d68023dbfd9089a7e2ec2d36ef4f1f7974e      
2011-08-30 23:33:46.000000000 +0200
@@ -0,0 +1,25 @@
+commit 11ab2d68023dbfd9089a7e2ec2d36ef4f1f7974e
+Author: Volker Lendecke <v...@samba.org>
+Date:   Fri Aug 26 11:39:41 2011 +0200
+
+    s3: Use sys_write in fork_domain_child
+    
+    Counterpart for last checkin. A lot less likely, but not impossible in a 
child.
+    
+    Autobuild-User: Volker Lendecke <vlen...@samba.org>
+    Autobuild-Date: Fri Aug 26 13:14:27 CEST 2011 on sn-devel-104
+    (cherry picked from commit e0e3d215b1902ecbeb3d469af9a196856711921e)
+
+Index: source3/winbindd/winbindd_dual.c
+===================================================================
+--- source3/winbindd/winbindd_dual.c.orig
++++ source3/winbindd/winbindd_dual.c
+@@ -1361,7 +1361,7 @@ static bool fork_domain_child(struct win
+ 
+       status = winbindd_reinit_after_fork(child, child->logfilename);
+ 
+-      nwritten = write(state.sock, &status, sizeof(status));
++      nwritten = sys_write(state.sock, &status, sizeof(status));
+       if (nwritten != sizeof(status)) {
+               DEBUG(1, ("fork_domain_child: Could not write status: "
+                         "nwritten=%d, error=%s\n", (int)nwritten,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/1a996fe1d12a55e68b7266ce5db8972b6e5f101a 
new/patches/samba.org/1a996fe1d12a55e68b7266ce5db8972b6e5f101a
--- old/patches/samba.org/1a996fe1d12a55e68b7266ce5db8972b6e5f101a      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/1a996fe1d12a55e68b7266ce5db8972b6e5f101a      
2011-08-30 23:55:18.000000000 +0200
@@ -0,0 +1,28 @@
+commit 1a996fe1d12a55e68b7266ce5db8972b6e5f101a
+Author: Volker Lendecke <v...@samba.org>
+Date:   Thu Aug 25 20:13:09 2011 +0200
+
+    s3: Fix getent group if trusted domains are not reachable
+    
+    Fix bug #8420 (wb_group_members: non-resistance against garbage).
+
+Index: source3/winbindd/wb_group_members.c
+===================================================================
+--- source3/winbindd/wb_group_members.c.orig
++++ source3/winbindd/wb_group_members.c
+@@ -209,8 +209,13 @@ static void wb_groups_members_done(struc
+        * and just continue if an error occured.
+        */
+ 
+-      if (tevent_req_nterror(req, status)) {
+-              return;
++      if (!NT_STATUS_IS_OK(status)) {
++              if (!NT_STATUS_EQUAL(
++                          status, NT_STATUS_TRUSTED_DOMAIN_FAILURE)) {
++                      tevent_req_nterror(req, status);
++                      return;
++              }
++              num_members = 0;
+       }
+ 
+       num_all_members = talloc_array_length(state->all_members);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/225c66ada497449a55d2eed6dfb27cedf3a863c0 
new/patches/samba.org/225c66ada497449a55d2eed6dfb27cedf3a863c0
--- old/patches/samba.org/225c66ada497449a55d2eed6dfb27cedf3a863c0      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/225c66ada497449a55d2eed6dfb27cedf3a863c0      
2011-08-30 23:02:29.000000000 +0200
@@ -0,0 +1,23 @@
+commit 225c66ada497449a55d2eed6dfb27cedf3a863c0
+Author: Jeremy Allison <j...@samba.org>
+Date:   Mon Aug 29 16:46:15 2011 -0700
+
+    Fix bug Bug 8422 - Infinite loop in ACL module code.
+    
+    Missing assignment means this loop will never terminate. Need to be applied
+    to 3.5.x and 3.6.1.
+    (cherry picked from commit 218cccfdf1820a9840a5cbc7df3915b6b58a762d)
+
+Index: source3/modules/vfs_acl_common.c
+===================================================================
+--- source3/modules/vfs_acl_common.c.orig
++++ source3/modules/vfs_acl_common.c
+@@ -868,7 +868,7 @@ static int acl_common_remove_object(vfs_
+       /* Ensure we have this file open with DELETE access. */
+       id = vfs_file_id_from_sbuf(conn, &local_fname.st);
+       for (fsp = file_find_di_first(conn->sconn, id); fsp;
+-           file_find_di_next(fsp)) {
++                   fsp = file_find_di_next(fsp)) {
+               if (fsp->access_mask & DELETE_ACCESS &&
+                               fsp->delete_on_close) {
+                       /* We did open this for delete,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/2f0a5b477f58378c3505631d15b422057b037efe 
new/patches/samba.org/2f0a5b477f58378c3505631d15b422057b037efe
--- old/patches/samba.org/2f0a5b477f58378c3505631d15b422057b037efe      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/2f0a5b477f58378c3505631d15b422057b037efe      
2011-08-30 23:34:03.000000000 +0200
@@ -0,0 +1,29 @@
+commit 2f0a5b477f58378c3505631d15b422057b037efe
+Author: Volker Lendecke <v...@samba.org>
+Date:   Fri Aug 26 11:38:21 2011 +0200
+
+    s3: Use sys_read in fork_domain_child
+    
+    I've seen
+    
+    [2011/08/26 01:44:10.872057,  1] 
winbindd/winbindd_dual.c:1336(fork_domain_child)
+      fork_domain_child: Could not read child status: nread=-1, 
error=Interrupted system call
+    
+    on a customer box. Not good.
+    (cherry picked from commit 964e809ce2069ad888e0fb12dfe51bac5a461508)
+    
+    The last 3 patches address bug #8409 (f7d97868 created a new race 
condition).
+
+Index: source3/winbindd/winbindd_dual.c
+===================================================================
+--- source3/winbindd/winbindd_dual.c.orig
++++ source3/winbindd/winbindd_dual.c
+@@ -1330,7 +1330,7 @@ static bool fork_domain_child(struct win
+ 
+               close(fdpair[0]);
+ 
+-              nread = read(fdpair[1], &status, sizeof(status));
++              nread = sys_read(fdpair[1], &status, sizeof(status));
+               if (nread != sizeof(status)) {
+                       DEBUG(1, ("fork_domain_child: Could not read child 
status: "
+                                 "nread=%d, error=%s\n", (int)nread,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/45392d05ff059987fb76d3818969177b5a5de6b0 
new/patches/samba.org/45392d05ff059987fb76d3818969177b5a5de6b0
--- old/patches/samba.org/45392d05ff059987fb76d3818969177b5a5de6b0      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/45392d05ff059987fb76d3818969177b5a5de6b0      
2011-08-30 23:12:07.000000000 +0200
@@ -0,0 +1,72 @@
+commit 45392d05ff059987fb76d3818969177b5a5de6b0
+Author: Volker Lendecke <v...@samba.org>
+Date:   Mon Aug 22 14:16:26 2011 +0200
+
+    s3: Fix bug 8385
+    
+    Poll and select behave differently regarding error handling. When doing the
+    connect(2), we can not rely on poll telling us both readability and 
writability
+    upon error. Just always try a second connect(2). At least on Linux it 
returns 0
+    when it succeeded.
+    
+    Signed-off-by: Jeremy Allison <j...@samba.org>
+    
+    Autobuild-User: Jeremy Allison <j...@samba.org>
+    Autobuild-Date: Thu Aug 25 19:39:12 CEST 2011 on sn-devel-104
+    (cherry picked from commit 50e30afa608dfdeae8a260730ead9761ed424dad)
+
+Index: lib/async_req/async_sock.c
+===================================================================
+--- lib/async_req/async_sock.c.orig
++++ lib/async_req/async_sock.c
+@@ -325,36 +325,24 @@ static void async_connect_connected(stru
+               priv, struct tevent_req);
+       struct async_connect_state *state =
+               tevent_req_data(req, struct async_connect_state);
++      int ret;
+ 
+-      /*
+-       * Stevens, Network Programming says that if there's a
+-       * successful connect, the socket is only writable. Upon an
+-       * error, it's both readable and writable.
+-       */
+-      if ((flags & (TEVENT_FD_READ|TEVENT_FD_WRITE))
+-          == (TEVENT_FD_READ|TEVENT_FD_WRITE)) {
+-              int ret;
+-
+-              ret = connect(state->fd,
+-                            (struct sockaddr *)(void *)&state->address,
+-                            state->address_len);
+-              if (ret == 0) {
+-                      TALLOC_FREE(fde);
+-                      tevent_req_done(req);
+-                      return;
+-              }
+-
+-              if (errno == EINPROGRESS) {
+-                      /* Try again later, leave the fde around */
+-                      return;
+-              }
++      ret = connect(state->fd, (struct sockaddr *)(void *)&state->address,
++                    state->address_len);
++      if (ret == 0) {
++              state->sys_errno = 0;
+               TALLOC_FREE(fde);
+-              tevent_req_error(req, errno);
++              tevent_req_done(req);
+               return;
+       }
+-
+-      state->sys_errno = 0;
+-      tevent_req_done(req);
++      if (errno == EINPROGRESS) {
++              /* Try again later, leave the fde around */
++              return;
++      }
++      state->sys_errno = errno;
++      TALLOC_FREE(fde);
++      tevent_req_error(req, errno);
++      return;
+ }
+ 
+ int async_connect_recv(struct tevent_req *req, int *perrno)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/a0a799663bd4780bb9f948e2dd0635dadb4e2c40 
new/patches/samba.org/a0a799663bd4780bb9f948e2dd0635dadb4e2c40
--- old/patches/samba.org/a0a799663bd4780bb9f948e2dd0635dadb4e2c40      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/a0a799663bd4780bb9f948e2dd0635dadb4e2c40      
2011-08-30 23:44:07.000000000 +0200
@@ -0,0 +1,87 @@
+commit a0a799663bd4780bb9f948e2dd0635dadb4e2c40
+Author: Jeremy Allison <j...@samba.org>
+Date:   Mon Aug 29 16:47:16 2011 -0700
+
+    Fix bug 8412 - Microsoft Office 2007 (Microsoft Word) fails to save as on 
a Samba share with SMB2. (cherry picked from commit 
dec3b21cd1737b317749e7ebced5aa1c2115ebdf)
+
+Index: source3/smbd/reply.c
+===================================================================
+--- source3/smbd/reply.c.orig
++++ source3/smbd/reply.c
+@@ -5936,6 +5936,47 @@ static void notify_rename(connection_str
+ }
+ 
+ /****************************************************************************
++ Returns an error if the parent directory for a filename is open in an
++ incompatible way.
++****************************************************************************/
++
++static NTSTATUS parent_dirname_compatible_open(connection_struct *conn,
++                                      const struct smb_filename 
*smb_fname_dst_in)
++{
++      char *parent_dir = NULL;
++      struct smb_filename smb_fname_parent;
++      struct file_id id;
++      files_struct *fsp = NULL;
++      int ret;
++
++      if (!parent_dirname(talloc_tos(), smb_fname_dst_in->base_name,
++                      &parent_dir, NULL)) {
++              return NT_STATUS_NO_MEMORY;
++      }
++      ZERO_STRUCT(smb_fname_parent);
++      smb_fname_parent.base_name = parent_dir;
++
++      ret = SMB_VFS_LSTAT(conn, &smb_fname_parent);
++      if (ret == -1) {
++              return map_nt_error_from_unix(errno);
++      }
++
++      /*
++       * We're only checking on this smbd here, mostly good
++       * enough.. and will pass tests.
++       */
++
++      id = vfs_file_id_from_sbuf(conn, &smb_fname_parent.st);
++      for (fsp = file_find_di_first(conn->sconn, id); fsp;
++                      fsp = file_find_di_next(fsp)) {
++              if (fsp->access_mask & DELETE_ACCESS) {
++                      return NT_STATUS_SHARING_VIOLATION;
++                }
++        }
++      return NT_STATUS_OK;
++}
++
++/****************************************************************************
+  Rename an open file - given an fsp.
+ ****************************************************************************/
+ 
+@@ -5955,6 +5996,11 @@ NTSTATUS rename_internals_fsp(connection
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
++
++      status = parent_dirname_compatible_open(conn, smb_fname_dst_in);
++      if (!NT_STATUS_IS_OK(status)) {
++              return status;
++      }
+ 
+       /* Make a copy of the dst smb_fname structs */
+ 
+Index: source3/smbd/smb2_setinfo.c
+===================================================================
+--- source3/smbd/smb2_setinfo.c.orig
++++ source3/smbd/smb2_setinfo.c
+@@ -219,12 +219,6 @@ static struct tevent_req *smbd_smb2_seti
+               if (file_info_level == SMB_FILE_RENAME_INFORMATION) {
+                       /* SMB2_FILE_RENAME_INFORMATION_INTERNAL == 0xFF00 + 
in_file_info_class */
+                       file_info_level = SMB2_FILE_RENAME_INFORMATION_INTERNAL;
+-                      if (fsp->oplock_type != FAKE_LEVEL_II_OPLOCK &&
+-                          fsp->oplock_type != NO_OPLOCK) {
+-                              /* No break, but error. */
+-                              tevent_req_nterror(req, 
NT_STATUS_SHARING_VIOLATION);
+-                              return tevent_req_post(req, ev);
+-                      }
+               }
+ 
+               if (fsp->fh->fd == -1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/b181fe9ec50ff63074b217143b6daa5cddfb8853 
new/patches/samba.org/b181fe9ec50ff63074b217143b6daa5cddfb8853
--- old/patches/samba.org/b181fe9ec50ff63074b217143b6daa5cddfb8853      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/b181fe9ec50ff63074b217143b6daa5cddfb8853      
2011-08-30 23:33:34.000000000 +0200
@@ -0,0 +1,58 @@
+commit b181fe9ec50ff63074b217143b6daa5cddfb8853
+Author: Volker Lendecke <v...@samba.org>
+Date:   Fri Aug 26 16:54:18 2011 +0200
+
+    s3: Fix a winbind race leading to 100% CPU
+    
+    This fixes a race condition that leads to the winbindd_children list 
becoming
+    corrupted. It happens when on a busy winbind SIGCHLD is a bit late.
+    
+    Imagine a winbind with multiple requests in the queue for a single child. 
Child
+    dies, and before the SIGCHLD handler is called we find the socket to be 
dead.
+    wb_child_request_done is called, receiving an error from 
wb_simple_trans_recv.
+    It closes the socket. Then immediately the wb_child_request_trigger will do
+    another fork_domain_child before the signal handler is called. This means 
that
+    we do another fork_domain_child, we have child->sock==-1 at this point.
+    fork_domain_child will do a DLIST_ADD(winbindd_children, child) a second 
time
+    where the child is already part of that list. This corrupts the list. Then 
the
+    signal handler kicks in, spinning in
+    
+    for (child = winbindd_children; child != NULL; child = child->next) {
+    
+    forever. Not good. This patch makes sure that both conditions (sock==-1 
and not
+    part of the list) for a winbindd_child struct match up.
+    
+    Autobuild-User: Volker Lendecke <vlen...@samba.org>
+    Autobuild-Date: Fri Aug 26 18:51:24 CEST 2011 on sn-devel-104
+    (cherry picked from commit ed058f4dc3e059967f3c0538bc220866e9c63588)
+
+Index: source3/winbindd/winbindd_dual.c
+===================================================================
+--- source3/winbindd/winbindd_dual.c.orig
++++ source3/winbindd/winbindd_dual.c
+@@ -43,6 +43,8 @@
+ extern bool override_logfile;
+ extern struct winbindd_methods cache_methods;
+ 
++static struct winbindd_child *winbindd_children = NULL;
++
+ /* Read some data from a client connection */
+ 
+ static NTSTATUS child_read_request(struct winbindd_cli_state *state)
+@@ -171,6 +173,7 @@ static void wb_child_request_done(struct
+                */
+               close(state->child->sock);
+               state->child->sock = -1;
++              DLIST_REMOVE(winbindd_children, state->child);
+               tevent_req_error(req, err);
+               return;
+       }
+@@ -489,8 +492,6 @@ void setup_child(struct winbindd_domain
+       SMB_ASSERT(child->binding_handle != NULL);
+ }
+ 
+-static struct winbindd_child *winbindd_children = NULL;
+-
+ void winbind_child_died(pid_t pid)
+ {
+       struct winbindd_child *child;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/fc8c5880d9785103e3345781bfca48e67a92cc33 
new/patches/samba.org/fc8c5880d9785103e3345781bfca48e67a92cc33
--- old/patches/samba.org/fc8c5880d9785103e3345781bfca48e67a92cc33      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/fc8c5880d9785103e3345781bfca48e67a92cc33      
2011-08-31 00:04:24.000000000 +0200
@@ -0,0 +1,75 @@
+commit fc8c5880d9785103e3345781bfca48e67a92cc33
+Author: Christian Ambach <a...@samba.org>
+Date:   Tue Aug 30 17:39:56 2011 +0200
+
+    s3:smb2 fix Bug 8428 - wrong reply to DHnC (durable handle reconnect)
+    
+    According to [MS-SMB2] 3.3.5.9.7
+    (http://msdn.microsoft.com/en-us/library/cc246784%28v=PROT.13%29.aspx),
+    smbd must reply with NT_STATUS_OBJECT_NAME_NOT_FOUND as it does not
+    support durable file-handles yet.
+    
+    I have seen w2k8r2 running xcopy /C ending up in an endless loop
+    trying to get back the original file handle from smbd sending the same
+    requests over and over.
+    
+    Metze, Jeremy, please check!
+
+Index: source3/smbd/smb2_create.c
+===================================================================
+--- source3/smbd/smb2_create.c.orig
++++ source3/smbd/smb2_create.c
+@@ -537,7 +537,7 @@ static struct tevent_req *smbd_smb2_crea
+ 
+               if (exta) {
+                       if (dhnc) {
+-                              tevent_req_nterror(req, 
NT_STATUS_INVALID_PARAMETER);
++                              
tevent_req_nterror(req,NT_STATUS_OBJECT_NAME_NOT_FOUND);
+                               return tevent_req_post(req, ev);
+                       }
+ 
+@@ -552,7 +552,7 @@ static struct tevent_req *smbd_smb2_crea
+ 
+               if (mxac) {
+                       if (dhnc) {
+-                              tevent_req_nterror(req, 
NT_STATUS_INVALID_PARAMETER);
++                              tevent_req_nterror(req, 
NT_STATUS_OBJECT_NAME_NOT_FOUND);
+                               return tevent_req_post(req, ev);
+                       }
+ 
+@@ -570,7 +570,7 @@ static struct tevent_req *smbd_smb2_crea
+                       enum ndr_err_code ndr_err;
+ 
+                       if (dhnc) {
+-                              tevent_req_nterror(req, 
NT_STATUS_INVALID_PARAMETER);
++                              tevent_req_nterror(req, 
NT_STATUS_OBJECT_NAME_NOT_FOUND);
+                               return tevent_req_post(req, ev);
+                       }
+ 
+@@ -592,7 +592,7 @@ static struct tevent_req *smbd_smb2_crea
+ 
+               if (dhnq) {
+                       if (dhnc) {
+-                              tevent_req_nterror(req, 
NT_STATUS_INVALID_PARAMETER);
++                              tevent_req_nterror(req, 
NT_STATUS_OBJECT_NAME_NOT_FOUND);
+                               return tevent_req_post(req, ev);
+                       }
+ 
+@@ -618,7 +618,7 @@ static struct tevent_req *smbd_smb2_crea
+ 
+               if (alsi) {
+                       if (dhnc) {
+-                              tevent_req_nterror(req, 
NT_STATUS_INVALID_PARAMETER);
++                              tevent_req_nterror(req, 
NT_STATUS_OBJECT_NAME_NOT_FOUND);
+                               return tevent_req_post(req, ev);
+                       }
+ 
+@@ -635,7 +635,7 @@ static struct tevent_req *smbd_smb2_crea
+                       struct tm *tm;
+ 
+                       if (dhnc) {
+-                              tevent_req_nterror(req, 
NT_STATUS_INVALID_PARAMETER);
++                              tevent_req_nterror(req, 
NT_STATUS_OBJECT_NAME_NOT_FOUND);
+                               return tevent_req_post(req, ev);
+                       }
+ 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/series new/patches/series
--- old/patches/series  2011-08-27 21:38:56.000000000 +0200
+++ new/patches/series  2011-08-31 00:04:20.000000000 +0200
@@ -25,6 +25,14 @@
 samba.org/2e07c662b08f8bba5cc03efcdcc13165e392b6e8 -p0 # test suite for 
talloc_free_children()
 samba.org/8d46b29595c4da27b175b25a08b945fbeeeab3ec -p0 # check block count 
after references test
 samba.org/9bf2b3034b4c9523bfac779e518a2a1a6d76ef46 -p0 # bso 8395
+samba.org/225c66ada497449a55d2eed6dfb27cedf3a863c0 -p0 # bso 8422
+samba.org/45392d05ff059987fb76d3818969177b5a5de6b0 -p0 # bso 8385
+samba.org/b181fe9ec50ff63074b217143b6daa5cddfb8853 -p0 # bso 8409
+samba.org/11ab2d68023dbfd9089a7e2ec2d36ef4f1f7974e -p0 # bso 8409
+samba.org/2f0a5b477f58378c3505631d15b422057b037efe -p0 # bso 8409
+samba.org/a0a799663bd4780bb9f948e2dd0635dadb4e2c40 -p0 # bso 8412
+samba.org/1a996fe1d12a55e68b7266ce5db8972b6e5f101a -p0 # bso 8420
+samba.org/fc8c5880d9785103e3345781bfca48e67a92cc33 -p0 # bso 8428
 
 # SuSE specific changes
 # disabled -> WIP lmuelle

++++++ vendor-files.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor-files/tools/package-data 
new/vendor-files/tools/package-data
--- old/vendor-files/tools/package-data 2011-08-27 21:40:37.000000000 +0200
+++ new/vendor-files/tools/package-data 2011-08-31 00:07:01.000000000 +0200
@@ -1,2 +1,2 @@
 # This is an autogenrated file.
-SAMBA_PACKAGE_SVN_VERSION="2610"
+SAMBA_PACKAGE_SVN_VERSION="2622"


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to