summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-12-19 16:11:14 +0100
committerVolker Lendecke <vl@samba.org>2008-12-19 16:13:27 +0100
commit398ef0fb855b3b2d6e55ae26304589fd89110628 (patch)
tree98c3c4be01dc1b6a61afb5466928f3350ff00d38 /source3
parent98c4055bcba17cde81345947d61fa2faae108654 (diff)
downloadsamba-398ef0fb855b3b2d6e55ae26304589fd89110628.tar.gz
samba-398ef0fb855b3b2d6e55ae26304589fd89110628.tar.bz2
samba-398ef0fb855b3b2d6e55ae26304589fd89110628.zip
For large smbwrite&x, we need more than 64k bcc
Diffstat (limited to 'source3')
-rw-r--r--source3/include/async_smb.h4
-rw-r--r--source3/libsmb/async_smb.c8
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;