From dddbab8e36ca47fb1799cfc38087d5bfcd694a03 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 28 Nov 2024 17:58:59 +0100 Subject: [PATCH] libcli: Simplify pull_integer() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Use ndr_pull_struct_blob_noalloc, we don't need talloc here. Signed-off-by: Volker Lendecke Reviewed-by: Pavel Filipenský --- libcli/security/conditional_ace.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/libcli/security/conditional_ace.c b/libcli/security/conditional_ace.c index c2411c4649e..fec22049183 100644 --- a/libcli/security/conditional_ace.c +++ b/libcli/security/conditional_ace.c @@ -114,21 +114,19 @@ static ssize_t pull_integer(TALLOC_CTX *mem_ctx, uint8_t *data, size_t length, struct ace_condition_int *tok) { - ssize_t bytes_used; + size_t consumed; enum ndr_err_code ndr_err; - DATA_BLOB v = data_blob_const(data, length); - struct ndr_pull *ndr = ndr_pull_init_blob(&v, mem_ctx); - if (ndr == NULL) { - return -1; - } - ndr_err = ndr_pull_ace_condition_int(ndr, NDR_SCALARS|NDR_BUFFERS, tok); + + ndr_err = ndr_pull_struct_blob_noalloc( + data, + length, + tok, + (ndr_pull_flags_fn_t)ndr_pull_ace_condition_int, + &consumed); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { - TALLOC_FREE(ndr); return -1; } - bytes_used = ndr->offset; - TALLOC_FREE(ndr); - return bytes_used; + return consumed; } static ssize_t push_integer(uint8_t *data, size_t available, -- 2.47.3