From: Stefan Metzmacher Date: Wed, 19 Feb 2025 14:25:50 +0000 (+0100) Subject: s4:auth: avoid talloc_reference in claims_data_encoded_claims_set() X-Git-Tag: tevent-0.17.0~666 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bc5b6f90f9bf4bba2a9d2d39c31ae9a0d34bf52;p=thirdparty%2Fsamba.git s4:auth: avoid talloc_reference in claims_data_encoded_claims_set() Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- 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; }