+ if (new_tree->operation == LDB_OP_EQUALITY) {
+ new_tree->u.equality.value = ldb_val_dup(new_tree, &tree->u.equality.value);
+ } else if (new_tree->operation == LDB_OP_SUBSTRING) {
+ new_tree->u.substring.chunks = NULL; /* FIXME! */
+ } else if (new_tree->operation == LDB_OP_LESS ||
+ new_tree->operation == LDB_OP_GREATER ||
+ new_tree->operation == LDB_OP_APPROX) {
+ new_tree->u.comparison.value = ldb_val_dup(new_tree, &tree->u.comparison.value);
+ } else if (new_tree->operation == LDB_OP_EXTENDED) {
+ new_tree->u.extended.value = ldb_val_dup(new_tree, &tree->u.extended.value);
+ new_tree->u.extended.rule_id = talloc_strdup(new_tree, tree->u.extended.rule_id);
+ }
+