From 4bc5b6f90f9bf4bba2a9d2d39c31ae9a0d34bf52 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 19 Feb 2025 15:25:50 +0100 Subject: [PATCH] s4:auth: avoid talloc_reference in claims_data_encoded_claims_set() Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- source4/auth/session.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/source4/auth/session.c b/source4/auth/session.c index e169a52efda..806f6eab03f 100644 --- a/source4/auth/session.c +++ b/source4/auth/session.c @@ -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; } -- 2.47.2