summaryrefslogtreecommitdiff
path: root/libcli/smb/smb2cli_create.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2013-08-13 10:25:52 +0200
committerStefan Metzmacher <metze@samba.org>2013-08-15 09:07:06 +0200
commit44b53937d59842a63e2cbfa92219f4f519530b0a (patch)
tree1df9a6f68350b724c5fa86d8eab01151466fac85 /libcli/smb/smb2cli_create.c
parent4a3352020db962ef40728d8a754da8a9418ca8a7 (diff)
downloadsamba-44b53937d59842a63e2cbfa92219f4f519530b0a.tar.gz
samba-44b53937d59842a63e2cbfa92219f4f519530b0a.tar.bz2
samba-44b53937d59842a63e2cbfa92219f4f519530b0a.zip
libcli/smb: pass max_dyn_len to smb2cli_req_send()
This way we can calculate the correct credit charge for requests with large output buffers. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'libcli/smb/smb2cli_create.c')
-rw-r--r--libcli/smb/smb2cli_create.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/libcli/smb/smb2cli_create.c b/libcli/smb/smb2cli_create.c
index 020a4685cb..3f8d67250c 100644
--- a/libcli/smb/smb2cli_create.c
+++ b/libcli/smb/smb2cli_create.c
@@ -62,6 +62,7 @@ struct tevent_req *smb2cli_create_send(
size_t blobs_offset;
uint8_t *dyn;
size_t dyn_len;
+ size_t max_dyn_len;
req = tevent_req_create(mem_ctx, &state,
struct smb2cli_create_state);
@@ -129,13 +130,23 @@ struct tevent_req *smb2cli_create_send(
data_blob_free(&blob);
}
+ /*
+ * We use max_dyn_len = 0
+ * as we don't explicitly ask for any output length.
+ *
+ * But it's still possible for the server to return
+ * large create blobs.
+ */
+ max_dyn_len = 0;
+
subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_CREATE,
0, 0, /* flags */
timeout_msec,
tcon,
session,
state->fixed, sizeof(state->fixed),
- dyn, dyn_len);
+ dyn, dyn_len,
+ max_dyn_len);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}