From a44bce6dfab59a6440ccc30ef0968d59b9f43fd3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Tue, 20 Sep 2016 00:18:43 +0200 Subject: [PATCH] libndr/compression: pass down compressed length in ndr_pull_compression_start Guenther Signed-off-by: Guenther Deschner Reviewed-by: Jeremy Allison --- librpc/ndr/ndr_compression.c | 3 ++- librpc/ndr/ndr_compression.h | 3 ++- pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/librpc/ndr/ndr_compression.c b/librpc/ndr/ndr_compression.c index 240fad8ffd5..fd915ccaaa6 100644 --- a/librpc/ndr/ndr_compression.c +++ b/librpc/ndr/ndr_compression.c @@ -383,7 +383,8 @@ static enum ndr_err_code ndr_push_compression_xpress_chunk(struct ndr_push *ndrp enum ndr_err_code ndr_pull_compression_start(struct ndr_pull *subndr, struct ndr_pull **_comndr, enum ndr_compression_alg compression_alg, - ssize_t decompressed_len) + ssize_t decompressed_len, + ssize_t compressed_len) { struct ndr_push *ndrpush; struct ndr_pull *comndr; diff --git a/librpc/ndr/ndr_compression.h b/librpc/ndr/ndr_compression.h index 1c22fbf7595..d682d4d3693 100644 --- a/librpc/ndr/ndr_compression.h +++ b/librpc/ndr/ndr_compression.h @@ -37,7 +37,8 @@ enum ndr_err_code ndr_pull_compression_start(struct ndr_pull *subndr, struct ndr_pull **_comndr, enum ndr_compression_alg compression_alg, - ssize_t decompressed_len); + ssize_t decompressed_len, + ssize_t compressed_len); enum ndr_err_code ndr_pull_compression_end(struct ndr_pull *subndr, struct ndr_pull *comndr, enum ndr_compression_alg compression_alg, diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index 6739b5f4391..cfcd29e25a7 100644 --- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -525,11 +525,12 @@ sub ParseCompressionPullStart($$$$$) my $comndr = "$ndr\_compressed"; my $alg = compression_alg($e, $l); my $dlen = compression_dlen($e, $l, $env); + my $clen = compression_clen($e, $l, $env); $self->pidl("{"); $self->indent; $self->pidl("struct ndr_pull *$comndr;"); - $self->pidl("NDR_CHECK(ndr_pull_compression_start($ndr, &$comndr, $alg, $dlen));"); + $self->pidl("NDR_CHECK(ndr_pull_compression_start($ndr, &$comndr, $alg, $dlen, $clen));"); return $comndr; } -- 2.34.1