From bd7b769c20a116b5b0f168c2e668d02568d023ac Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 29 Jan 2025 09:43:44 +0100 Subject: [PATCH] libcli/security: simplify logic in add_sid_to_array_attrs() (struct auth_SidAttr) {} makes sure we don't leave uninitialized memory in case struct auth_SidAttr will change (which will happen in the next commits). Signed-off-by: Stefan Metzmacher Reviewed-by: Jennifer Sutton --- libcli/security/util_sid.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c index 6f45c1be312..f69ad76d629 100644 --- a/libcli/security/util_sid.c +++ b/libcli/security/util_sid.c @@ -444,6 +444,10 @@ NTSTATUS add_sid_to_array_attrs(TALLOC_CTX *mem_ctx, { struct auth_SidAttr *tmp = NULL; + if (sid == NULL) { + return NT_STATUS_INVALID_PARAMETER; + } + if ((*num) == UINT32_MAX) { return NT_STATUS_INTEGER_OVERFLOW; } @@ -455,8 +459,10 @@ NTSTATUS add_sid_to_array_attrs(TALLOC_CTX *mem_ctx, } *sids = tmp; - sid_copy(&((*sids)[*num].sid), sid); - (*sids)[*num].attrs = attrs; + (*sids)[*num] = (struct auth_SidAttr) { + .sid = *sid, + .attrs = attrs, + }; *num += 1; return NT_STATUS_OK;