summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/acl_read.c
diff options
context:
space:
mode:
authorNadezhda Ivanova <nivanova@samba.org>2010-12-08 14:30:23 +0200
committerNadezhda Ivanova <nivanova@samba.org>2010-12-08 15:01:51 +0100
commitbf7b026a9a1a425afa64fb9aa8bdcb1c10d161d7 (patch)
tree6d14f3f4187de21ef52de3a2f6b252f541e695ed /source4/dsdb/samdb/ldb_modules/acl_read.c
parent1bd3bd6e6e67dc88c85077d94c749569ac6e97cb (diff)
downloadsamba-bf7b026a9a1a425afa64fb9aa8bdcb1c10d161d7.tar.gz
samba-bf7b026a9a1a425afa64fb9aa8bdcb1c10d161d7.tar.bz2
samba-bf7b026a9a1a425afa64fb9aa8bdcb1c10d161d7.zip
s4-acl: Replaced talloc_reference with talloc_steal, as aclread is the only one using this result message.
No need to reference as no one further up the stack uses the result, it is the result of a secondary request sent by aclread. As a result from code review by Kamen Mazdrashki and Anatoliy Atanasov Autobuild-User: Nadezhda Ivanova <nivanova@samba.org> Autobuild-Date: Wed Dec 8 15:01:51 CET 2010 on sn-devel-104
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/acl_read.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/acl_read.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/acl_read.c b/source4/dsdb/samdb/ldb_modules/acl_read.c
index c7aaf113c7..27cc1e79cf 100644
--- a/source4/dsdb/samdb/ldb_modules/acl_read.c
+++ b/source4/dsdb/samdb/ldb_modules/acl_read.c
@@ -177,8 +177,9 @@ static int aclread_callback(struct ldb_request *req, struct ldb_reply *ares)
}
}
/*create a new message to return*/
- ret_msg = ldb_msg_new(req);
+ ret_msg = ldb_msg_new(ac->req);
ret_msg->dn = msg->dn;
+ talloc_steal(ret_msg, msg->dn);
ret_msg->num_elements = num_of_attrs;
if (num_of_attrs > 0) {
ret_msg->elements = talloc_array(ret_msg,
@@ -191,11 +192,7 @@ static int aclread_callback(struct ldb_request *req, struct ldb_reply *ares)
bool to_remove = aclread_is_inaccessible(&msg->elements[i]);
if (!to_remove) {
ret_msg->elements[k] = msg->elements[i];
- if (!talloc_reference(ret_msg->elements,
- msg->elements[i].values)) {
- talloc_free(tmp_ctx);
- return ldb_operr(ldb);
- }
+ talloc_steal(ret_msg->elements, msg->elements[i].values);
k++;
}
}