diff options
author | Volker Lendecke <vl@samba.org> | 2008-12-19 16:11:14 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2008-12-19 16:13:27 +0100 |
commit | 398ef0fb855b3b2d6e55ae26304589fd89110628 (patch) | |
tree | 98c3c4be01dc1b6a61afb5466928f3350ff00d38 | |
parent | 98c4055bcba17cde81345947d61fa2faae108654 (diff) | |
download | samba-398ef0fb855b3b2d6e55ae26304589fd89110628.tar.gz samba-398ef0fb855b3b2d6e55ae26304589fd89110628.tar.bz2 samba-398ef0fb855b3b2d6e55ae26304589fd89110628.zip |
For large smbwrite&x, we need more than 64k bcc
-rw-r--r-- | source3/include/async_smb.h | 4 | ||||
-rw-r--r-- | source3/libsmb/async_smb.c | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/source3/include/async_smb.h b/source3/include/async_smb.h index fd0b0d2c53..f8f94aa4c9 100644 --- a/source3/include/async_smb.h +++ b/source3/include/async_smb.h @@ -120,7 +120,7 @@ struct async_req *cli_request_send(TALLOC_CTX *mem_ctx, uint8_t additional_flags, uint8_t wct, const uint16_t *vwv, size_t bytes_alignment, - uint16_t num_bytes, const uint8_t *bytes); + uint32_t num_bytes, const uint8_t *bytes); bool cli_chain_cork(struct cli_state *cli, struct event_context *ev, size_t size_hint); @@ -129,7 +129,7 @@ bool cli_in_chain(struct cli_state *cli); bool smb_splice_chain(char **poutbuf, uint8_t smb_command, uint8_t wct, const uint16_t *vwv, size_t bytes_alignment, - uint16_t num_bytes, const uint8_t *bytes); + uint32_t num_bytes, const uint8_t *bytes); NTSTATUS cli_pull_reply(struct async_req *req, uint8_t *pwct, uint16_t **pvwv, diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 3b7442a680..a5ce505908 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -234,7 +234,7 @@ static bool find_andx_cmd_ofs(char *buf, size_t *pofs) bool smb_splice_chain(char **poutbuf, uint8_t smb_command, uint8_t wct, const uint16_t *vwv, size_t bytes_alignment, - uint16_t num_bytes, const uint8_t *bytes) + uint32_t num_bytes, const uint8_t *bytes) { char *outbuf; size_t old_size, new_size; @@ -274,7 +274,7 @@ bool smb_splice_chain(char **poutbuf, uint8_t smb_command, new_size += bytes_padding + num_bytes; - if (new_size > 0xffff) { + if ((smb_command != SMBwriteX) && (new_size > 0xffff)) { DEBUG(1, ("splice_chain: %u bytes won't fit\n", (unsigned)new_size)); return false; @@ -417,7 +417,7 @@ static struct async_req *cli_request_chain(TALLOC_CTX *mem_ctx, uint8_t additional_flags, uint8_t wct, const uint16_t *vwv, size_t bytes_alignment, - uint16_t num_bytes, + uint32_t num_bytes, const uint8_t *bytes) { struct async_req **tmp_reqs; @@ -606,7 +606,7 @@ struct async_req *cli_request_send(TALLOC_CTX *mem_ctx, uint8_t additional_flags, uint8_t wct, const uint16_t *vwv, size_t bytes_alignment, - uint16_t num_bytes, const uint8_t *bytes) + uint32_t num_bytes, const uint8_t *bytes) { struct async_req *result; bool uncork = false; |