]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libcli: Simplify pull_integer()
authorVolker Lendecke <vl@samba.org>
Thu, 28 Nov 2024 16:58:59 +0000 (17:58 +0100)
committerVolker Lendecke <vl@samba.org>
Tue, 17 Dec 2024 12:30:30 +0000 (12:30 +0000)
Use ndr_pull_struct_blob_noalloc, we don't need talloc here.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Pavel Filipenský <pfilipensky@samba.org>
libcli/security/conditional_ace.c

index c2411c4649e083aaa05ac422f9029dd8075fb8a5..fec22049183d4d71849aba63f937709ac27f4657 100644 (file)
@@ -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,