From: Stefan Metzmacher Date: Sat, 20 Jun 2015 15:49:02 +0000 (+0200) Subject: s4:librpc/rpc: fix padding caclucation in ncacn_push_request_sign() X-Git-Tag: samba-4.1.20~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e661c302bf7d5bfaaac50bfa5d52f10ee9ec85d7;p=thirdparty%2Fsamba.git s4:librpc/rpc: fix padding caclucation in ncacn_push_request_sign() This is simplified by using DCERPC_AUTH_PAD_LENGTH() and changes the behaviour so that we will use no padding if the stub_length is already aligned to DCERPC_AUTH_PAD_ALIGNMENT (16 bytes). BUG: https://bugzilla.samba.org/show_bug.cgi?id=11061 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison Reviewed-by: Andreas Schneider Reviewed-by: Andrew Bartlett (cherry picked from commit 114c52e73ed9e0adeac8ad1bc1dc014f3c10f4d6) --- diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index 9984ea2ca49..562d52e8d1b 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -854,7 +854,7 @@ static NTSTATUS ncacn_push_request_sign(struct dcecli_connection *c, whole packet, whereas w2k8 wants it relative to the start of the stub */ c->security_state.auth_info->auth_pad_length = - (16 - (pkt->u.request.stub_and_verifier.length & 15)) & 15; + DCERPC_AUTH_PAD_LENGTH(pkt->u.request.stub_and_verifier.length); ndr_err = ndr_push_zero(ndr, c->security_state.auth_info->auth_pad_length); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { return ndr_map_error2ntstatus(ndr_err);