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++; }