summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Davis <cd.rattan@gmail.com>2014-07-07 21:30:49 -0700
committerMichael Adam <obnox@samba.org>2014-10-01 14:32:09 +0200
commitc94c765f01dc145ee7f1abfe1379ed9c923f3d43 (patch)
tree7942af6c193e1e3a32330a76a66d2a58c04ba430
parentfec275a4a8e9ecd77fb30c4a242a2fe832d9f41c (diff)
downloadsamba-c94c765f01dc145ee7f1abfe1379ed9c923f3d43.tar.gz
samba-c94c765f01dc145ee7f1abfe1379ed9c923f3d43.tar.xz
samba-c94c765f01dc145ee7f1abfe1379ed9c923f3d43.zip
regedit: simplify cleanup after loading children
Signed-off-by: Chris Davis <cd.rattan@gmail.com> Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
-rw-r--r--source3/utils/regedit_treeview.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/source3/utils/regedit_treeview.c b/source3/utils/regedit_treeview.c
index dd4b5cb08c..47d92821e8 100644
--- a/source3/utils/regedit_treeview.c
+++ b/source3/utils/regedit_treeview.c
@@ -274,7 +274,7 @@ WERROR tree_node_load_children(struct tree_node *node)
continue;
}
- array[count] = tree_node_new(node, node, key_name, key);
+ array[count] = tree_node_new(array, node, key_name, key);
if (array[count] == NULL) {
rv = WERR_NOMEM;
goto finish;
@@ -286,21 +286,16 @@ WERROR tree_node_load_children(struct tree_node *node)
TYPESAFE_QSORT(array, count, node_cmp);
for (i = 1, prev = array[0]; i < count; ++i) {
+ talloc_steal(node, array[i]);
tree_node_append(prev, array[i]);
prev = array[i];
}
- node->child_head = array[0];
+ node->child_head = talloc_steal(node, array[0]);
rv = WERR_OK;
}
finish:
- if (!W_ERROR_IS_OK(rv)) {
- for (i = 0; i < nsubkeys; ++i) {
- talloc_free(array[i]);
- }
- node->child_head = NULL;
- }
talloc_free(array);
return rv;