Fix bug #7791 - gvfsd-smb (Gnome vfs) fails to copy files from a SMB share using...
authorJeremy Allison <jra@samba.org>
Thu, 11 Nov 2010 01:59:05 +0000 (17:59 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 11 Nov 2010 02:50:08 +0000 (02:50 +0000)
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 <jra@samba.org>
Autobuild-Date: Thu Nov 11 02:50:08 UTC 2010 on sn-devel-104

source3/libsmb/clireadwrite.c

index 370c068fe4519de8be011fda8c31ca29c84f56fe..cd95b17f80e16ff2eeb9cc445dac8b4a1cc4b272 100644 (file)
@@ -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++;
                }