1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

pidl: calculate subcontext_size only once per pull

For security_ace_coda in security.idl, the sub-context size is
involves a slightly non-trivial function call which returns a constant
value.

In all other cases, a constant expression is used, and this makes
no difference.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15574
(cherry picked from commit 9811762775)
This commit is contained in:
Douglas Bagnall 2023-12-28 23:07:56 +13:00 committed by Jule Anger
parent b5289d66e9
commit f8014cae2e

View File

@ -603,7 +603,8 @@ sub ParseSubcontextPullStart($$$$$)
$self->pidl("{"); $self->pidl("{");
$self->indent; $self->indent;
$self->pidl("struct ndr_pull *$subndr;"); $self->pidl("struct ndr_pull *$subndr;");
$self->pidl("NDR_CHECK(ndr_pull_subcontext_start($ndr, &$subndr, $l->{HEADER_SIZE}, $subcontext_size));"); $self->pidl("ssize_t sub_size = $subcontext_size;");
$self->pidl("NDR_CHECK(ndr_pull_subcontext_start($ndr, &$subndr, $l->{HEADER_SIZE}, sub_size));");
if (defined $l->{COMPRESSION}) { if (defined $l->{COMPRESSION}) {
$subndr = $self->ParseCompressionPullStart($e, $l, $subndr, $env); $subndr = $self->ParseCompressionPullStart($e, $l, $subndr, $env);
@ -622,7 +623,7 @@ sub ParseSubcontextPullEnd($$$$$)
$self->ParseCompressionPullEnd($e, $l, $subndr, $env); $self->ParseCompressionPullEnd($e, $l, $subndr, $env);
} }
$self->pidl("NDR_CHECK(ndr_pull_subcontext_end($ndr, $subndr, $l->{HEADER_SIZE}, $subcontext_size));"); $self->pidl("NDR_CHECK(ndr_pull_subcontext_end($ndr, $subndr, $l->{HEADER_SIZE}, sub_size));");
$self->deindent; $self->deindent;
$self->pidl("}"); $self->pidl("}");
} }