summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb2/receive.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-05-11 10:47:37 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:05:54 -0500
commitdc86ab3e454d7219608d01879145dec5609acaa3 (patch)
tree5feacd2c479a6532ddb078d2b55db4144cc4e826 /source4/smb_server/smb2/receive.c
parentcf83b29b582c4475e5c065dae7e214faf4710222 (diff)
downloadsamba-dc86ab3e454d7219608d01879145dec5609acaa3.tar.gz
samba-dc86ab3e454d7219608d01879145dec5609acaa3.tar.bz2
samba-dc86ab3e454d7219608d01879145dec5609acaa3.zip
r15532: add a BOOL body_dynamic_present, because the body_dynamic_size can be 0
also if the dynamic flag should be set metze (This used to be commit 7829100e1ee79f4f5d24004af221288e19c09b3e)
Diffstat (limited to 'source4/smb_server/smb2/receive.c')
-rw-r--r--source4/smb_server/smb2/receive.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/source4/smb_server/smb2/receive.c b/source4/smb_server/smb2/receive.c
index e27e622a4a..abd825adcc 100644
--- a/source4/smb_server/smb2/receive.c
+++ b/source4/smb_server/smb2/receive.c
@@ -41,8 +41,17 @@ static struct smb2srv_request *smb2srv_init_request(struct smbsrv_connection *sm
return req;
}
-NTSTATUS smb2srv_setup_reply(struct smb2srv_request *req, uint_t body_fixed_size, size_t body_dynamic_size)
+NTSTATUS smb2srv_setup_reply(struct smb2srv_request *req, uint16_t body_fixed_size,
+ BOOL body_dynamic_present, uint32_t body_dynamic_size)
{
+ if (body_dynamic_present) {
+ if (body_dynamic_size == 0) {
+ body_dynamic_size = 1;
+ }
+ } else {
+ body_dynamic_size = 0;
+ }
+
req->out.size = SMB2_HDR_BODY+NBT_HDR_SIZE+body_fixed_size;
req->out.allocated = req->out.size + body_dynamic_size;
@@ -103,7 +112,7 @@ void smb2srv_send_error(struct smb2srv_request *req, NTSTATUS error)
{
NTSTATUS status;
- status = smb2srv_setup_reply(req, 8, 1);
+ status = smb2srv_setup_reply(req, 8, True, 0);
if (!NT_STATUS_IS_OK(status)) {
smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
talloc_free(req);