Commit proper v3-4-test backport patch.

Guenther
This commit is contained in:
Guenther Deschner 2009-08-21 16:49:56 +00:00
parent a72750731c
commit 6567f971a7
1 changed files with 20 additions and 17 deletions

View File

@ -1,31 +1,34 @@
commit 33d27797d3ae9ab3ff7e1aa940941cc450f5ad1d commit ef891070288cd13aff7c730de7c1baf54dddb90f
Author: Jeremy Allison <jra@samba.org> Author: Jeremy Allison <jra@samba.org>
AuthorDate: Wed Aug 19 15:33:08 2009 -0700 AuthorDate: Fri Aug 21 12:44:54 2009 +0200
Commit: Jeremy Allison <jra@samba.org> Commit: Karolin Seeger <kseeger@samba.org>
CommitDate: Wed Aug 19 15:33:08 2009 -0700 CommitDate: Fri Aug 21 12:46:47 2009 +0200
Fix Red Hat bugzilla bug : https://bugzilla.redhat.com/show_bug.cgi?id=516165 Fix Red Hat bugzilla bug : https://bugzilla.redhat.com/show_bug.cgi?id=516165
nautilus fails to copy files from an SMB share. This is a show-stopper nautilus fails to copy files from an SMB share. This is a show-stopper
for 3.4.1 (I'll open a Samba.org bug). Although gnome-vfs is doing for 3.4.1. Although gnome-vfs is doing *incredibly* stupid things by asking
*incredibly* stupid things by asking for a read size of 65535 - this for a read size of 65535 - this translates on the wire to a 65534 byte read
translates on the wire to a 65534 byte read followed by a 1 byte followed by a 1 byte read. Please send this back to the gnome developers that
read. Please send this back to the gnome developers that they they will ge horrid on the wire performance for this.
will ge horrid on the wire performance for this.
Jeremy. Jeremy.
Fixes bug #6649.
Fixed in master with commit 33d27797d3ae9ab3ff7e1aa940941cc450f5ad1d.
--- ---
source3/libsmb/clireadwrite.c | 2 +- source3/libsmb/clireadwrite.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-) 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c
index d38de19..0d1f9e5 100644 index f2f447b..b1064ba 100644
--- a/source3/libsmb/clireadwrite.c --- a/source3/libsmb/clireadwrite.c
+++ b/source3/libsmb/clireadwrite.c +++ b/source3/libsmb/clireadwrite.c
@@ -200,7 +200,7 @@ static void cli_read_andx_done(struct tevent_req *subreq) @@ -185,7 +185,7 @@ NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
state->buf = (uint8_t *)smb_base(inbuf) + SVAL(vwv+6, 0); buf = (uint8_t *)smb_base(cli_req->inbuf) + SVAL(vwv+6, 0);
if (trans_oob(smb_len(inbuf), SVAL(vwv+6, 0), state->received) if (trans_oob(smb_len(cli_req->inbuf), SVAL(vwv+6, 0), size)
- || (state->buf < bytes)) { - || (buf < bytes)) {
+ || (state->received && (state->buf < bytes))) { + || (size && (buf < bytes))) {
DEBUG(5, ("server returned invalid read&x data offset\n")); DEBUG(5, ("server returned invalid read&x data offset\n"));
tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE); return NT_STATUS_INVALID_NETWORK_RESPONSE;
return; }