summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/samdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/samdb/samdb.c')
-rw-r--r--source4/dsdb/samdb/samdb.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/source4/dsdb/samdb/samdb.c b/source4/dsdb/samdb/samdb.c
index 9a677249eb..d84d07fca6 100644
--- a/source4/dsdb/samdb/samdb.c
+++ b/source4/dsdb/samdb/samdb.c
@@ -841,12 +841,11 @@ int samdb_msg_add_hash(void *ctx, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
{
struct ldb_wrap *sam_ctx = ctx;
struct ldb_val val;
- val.data = talloc(mem_ctx, 16);
- val.length = 16;
+ val.data = talloc_memdup(mem_ctx, hash.hash, 16);
if (!val.data) {
return -1;
}
- memcpy(val.data, hash.hash, 16);
+ val.length = 16;
return ldb_msg_add_value(sam_ctx->ldb, msg, attr_name, &val);
}
@@ -859,7 +858,7 @@ int samdb_msg_add_hashes(void *ctx, TALLOC_CTX *mem_ctx, struct ldb_message *msg
struct ldb_wrap *sam_ctx = ctx;
struct ldb_val val;
int i;
- val.data = talloc(mem_ctx, count*16);
+ val.data = talloc_array(mem_ctx, 16, count, __location__);
val.length = count*16;
if (!val.data) {
return -1;