]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:auth: avoid talloc_reference in claims_data_encoded_claims_set()
authorStefan Metzmacher <metze@samba.org>
Wed, 19 Feb 2025 14:25:50 +0000 (15:25 +0100)
committerRalph Boehme <slow@samba.org>
Sat, 22 Feb 2025 22:06:39 +0000 (22:06 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source4/auth/session.c

index e169a52efdaadb1744ab7bebf744d0578cbce554..806f6eab03fc285668f0b3f68c3279133452d67e 100644 (file)
@@ -707,9 +707,6 @@ NTSTATUS claims_data_encoded_claims_set(TALLOC_CTX *mem_ctx,
                                        struct claims_data *claims_data,
                                        DATA_BLOB *encoded_claims_set_out)
 {
-       uint8_t *data = NULL;
-       size_t len;
-
        if (encoded_claims_set_out == NULL) {
                return NT_STATUS_INVALID_PARAMETER;
        }
@@ -738,15 +735,16 @@ NTSTATUS claims_data_encoded_claims_set(TALLOC_CTX *mem_ctx,
                claims_data->flags |= CLAIMS_DATA_ENCODED_CLAIMS_PRESENT;
        }
 
-       if (claims_data->encoded_claims_set.data != NULL) {
-               data = talloc_reference(mem_ctx, claims_data->encoded_claims_set.data);
-               if (data == NULL) {
+       if (claims_data->encoded_claims_set.length != 0) {
+               *encoded_claims_set_out = data_blob_dup_talloc(mem_ctx,
+                                               claims_data->encoded_claims_set);
+               if (encoded_claims_set_out->length !=
+                   claims_data->encoded_claims_set.length)
+               {
                        return NT_STATUS_NO_MEMORY;
                }
        }
-       len = claims_data->encoded_claims_set.length;
 
-       *encoded_claims_set_out = data_blob_const(data, len);
        return NT_STATUS_OK;
 }