Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: pu

Hello release team,

Here's another samba bug for which I would like to cherrypick the
upstream fix.

In #605728, it is reported fail to copy files to an SMB share using
signed SMB. This breaks Gnome desktop copying which is, IMHO,
important enough to deserve being fixed in squeeze.

I attach the relevant  upstream commit to this request. Please
consider allowing this into s-p-u.


-- System Information:
Debian Release: wheezy/sid
Architecture: i386 (i686)

Kernel: Linux 2.6.38-2-686 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
commit 0afb2995a2177afa2eb7b8f99887a39cdaf23a15
Author: Jeremy Allison <j...@samba.org>
Date:   Wed Nov 10 17:59:05 2010 -0800

    Fix bug #7791 - gvfsd-smb (Gnome vfs) fails to copy files from a SMB share 
using SMB signing.
    
    The underlying problem is that the old code invoked by cli_write() 
increments
    cli->mid directly when issuing outstanding writes. This should now be done 
only
    in libsmb/clientgen.c to make metze's new signing engine works correctly. 
Just
    deleting this code fixes the problem.
    
    Jeremy.
    
    Autobuild-User: Jeremy Allison <j...@samba.org>
    Autobuild-Date: Thu Nov 11 02:50:08 UTC 2010 on sn-devel-104

diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c
index 370c068..cd95b17 100644
--- a/source3/libsmb/clireadwrite.c
+++ b/source3/libsmb/clireadwrite.c
@@ -703,8 +703,7 @@ static bool cli_issue_write(struct cli_state *cli,
                                off_t offset,
                                uint16 mode,
                                const char *buf,
-                               size_t size,
-                               int i)
+                               size_t size)
 {
        char *p;
        bool large_writex = false;
@@ -778,8 +777,6 @@ static bool cli_issue_write(struct cli_state *cli,
                cli_setup_bcc(cli, p+size);
        }
 
-       SSVAL(cli->outbuf,smb_mid,cli->mid + i);
-
        show_msg(cli->outbuf);
        if (direct_writes) {
                /* For direct writes we now need to write the data
@@ -828,7 +825,7 @@ ssize_t cli_write(struct cli_state *cli,
                        if (!cli_issue_write(cli, fnum, offset + bsent,
                                        write_mode,
                                        buf + bsent,
-                                       size1, issued))
+                                       size1))
                                return -1;
                        issued++;
                }

Reply via email to