diff options
author | Chris Davis <cd.rattan@gmail.com> | 2014-07-07 21:30:49 -0700 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-10-01 14:32:09 +0200 |
commit | c94c765f01dc145ee7f1abfe1379ed9c923f3d43 (patch) | |
tree | 7942af6c193e1e3a32330a76a66d2a58c04ba430 | |
parent | fec275a4a8e9ecd77fb30c4a242a2fe832d9f41c (diff) | |
download | samba-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.c | 11 |
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; |