From bd38c0d47d6a22a68fea5d9d66a73a9e2521b239 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 28 May 2010 13:35:56 -0400 Subject: s3:auth fix info3 duplication function --- source3/auth/server_info.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c index 2545e7d58f..f72cdbaae9 100644 --- a/source3/auth/server_info.c +++ b/source3/auth/server_info.c @@ -392,6 +392,7 @@ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx, struct netr_SamInfo3 *orig) { struct netr_SamInfo3 *info3; + unsigned int i; info3 = talloc_zero(mem_ctx, struct netr_SamInfo3); if (!info3) return NULL; @@ -455,10 +456,14 @@ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx, } if (orig->sidcount) { - info3->sids = (struct netr_SidAttr *)talloc_memdup(info3, orig->sids, - (sizeof(struct netr_SidAttr) * - orig->sidcount)); + info3->sids = talloc_array(info3, struct netr_SidAttr, + orig->sidcount); RET_NOMEM(info3->sids); + for (i = 0; i < orig->sidcount; i++) { + info3->sids[i].sid = sid_dup_talloc(info3->sids, + orig->sids[i].sid); + RET_NOMEM(info3->sids[i].sid); + } } return info3; -- cgit