From b4de22a74d1a124af45ce0ec336b61b04a73ed97 Mon Sep 17 00:00:00 2001 From: Joseph Sutton Date: Wed, 20 Sep 2023 15:04:14 +1200 Subject: [PATCH] libcli/security: Fix leak on reallocation failure in conditional_ace_encode_binary() Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- libcli/security/conditional_ace.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libcli/security/conditional_ace.c b/libcli/security/conditional_ace.c index 7f4766ed135..a0c9a0ccbd1 100644 --- a/libcli/security/conditional_ace.c +++ b/libcli/security/conditional_ace.c @@ -2042,6 +2042,7 @@ bool conditional_ace_encode_binary(TALLOC_CTX *mem_ctx, { size_t i, j, alloc_size, required_size; uint8_t *data = NULL; + uint8_t *new_data = NULL; *dest = (DATA_BLOB){NULL, 0}; alloc_size = CONDITIONAL_ACE_MAX_LENGTH; @@ -2165,13 +2166,14 @@ bool conditional_ace_encode_binary(TALLOC_CTX *mem_ctx, data[j] = 0; j++; } - data = talloc_realloc(mem_ctx, - data, - uint8_t, - required_size); - if (data == NULL) { - return false; + new_data = talloc_realloc(mem_ctx, + data, + uint8_t, + required_size); + if (new_data == NULL) { + goto error; } + data = new_data; (*dest).data = data; (*dest).length = j; -- 2.47.3