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