diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-06-19 22:35:44 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2015-07-11 21:59:26 +0200 |
commit | 496d7f9a43b7acd14b168db91271ab57a6b6cec7 (patch) | |
tree | b15a9bcfe745cfc0d3c45261cc88d2ba786192a2 | |
parent | e22adb88bbab445c7aa21eebc0aaf0e7de9e3147 (diff) | |
download | samba-496d7f9a43b7acd14b168db91271ab57a6b6cec7.tar.gz |
s4:rpc_server: let dcesrv_reply() use a sig_size for a padded payload
The sig_size could differ depending on the aligment/padding.
So should use the same alignment as we use for the payload.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 16f3837e026e4cae135bbdddf09b44a02af25b05)
-rw-r--r-- | source4/rpc_server/common/reply.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source4/rpc_server/common/reply.c b/source4/rpc_server/common/reply.c index 42830ef225f..007b68083bf 100644 --- a/source4/rpc_server/common/reply.c +++ b/source4/rpc_server/common/reply.c @@ -187,8 +187,13 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call) chunk_size -= DCERPC_REQUEST_LENGTH; if (call->conn->auth_state.auth_info && call->conn->auth_state.gensec_security) { + size_t max_payload = chunk_size; + + max_payload -= DCERPC_AUTH_TRAILER_LENGTH; + max_payload -= (max_payload % DCERPC_AUTH_PAD_ALIGNMENT); + sig_size = gensec_sig_size(call->conn->auth_state.gensec_security, - call->conn->cli_max_recv_frag); + max_payload); if (sig_size) { chunk_size -= DCERPC_AUTH_TRAILER_LENGTH; chunk_size -= sig_size; |