From 2a9eaf741d8c169b8f06ee6498a6879acc654506 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 11 Nov 2010 09:44:21 -0800 Subject: [PATCH] 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. --- source3/libsmb/clireadwrite.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c index 6342de4..1f5f925 100644 --- a/source3/libsmb/clireadwrite.c +++ b/source3/libsmb/clireadwrite.c @@ -704,8 +704,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; @@ -779,8 +778,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 @@ -829,7 +826,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++; } -- 1.7.3.1