summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-09-21 05:15:38 +0200
committerStefan Metzmacher <metze@samba.org>2009-09-21 05:51:58 +0200
commit5656c22bea56773e33779d51fba912d2ae797134 (patch)
tree9e04daacb620ab4e31e8d0af3f9ab9b0e53f2b29
parent9d9bd31bf9069f8e0ddf0cd49da49e96dbec8ea5 (diff)
downloadsamba-5656c22bea56773e33779d51fba912d2ae797134.tar.gz
samba-5656c22bea56773e33779d51fba912d2ae797134.tar.bz2
samba-5656c22bea56773e33779d51fba912d2ae797134.zip
s4:dsdb/resolve_oids: check return values in recursion
metze
-rw-r--r--source4/dsdb/samdb/ldb_modules/resolve_oids.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/resolve_oids.c b/source4/dsdb/samdb/ldb_modules/resolve_oids.c
index f4d9eba17a..c9733f99a1 100644
--- a/source4/dsdb/samdb/ldb_modules/resolve_oids.c
+++ b/source4/dsdb/samdb/ldb_modules/resolve_oids.c
@@ -98,19 +98,22 @@ static int resolve_oids_parse_tree_replace(struct ldb_context *ldb,
const char *p1;
const void *p2;
struct ldb_val *valp = NULL;
+ int ret;
switch (tree->operation) {
case LDB_OP_AND:
case LDB_OP_OR:
for (i=0;i<tree->u.list.num_elements;i++) {
- resolve_oids_parse_tree_replace(ldb, schema,
+ ret = resolve_oids_parse_tree_replace(ldb, schema,
tree->u.list.elements[i]);
+ if (ret != LDB_SUCCESS) {
+ return ret;
+ }
}
return LDB_SUCCESS;
case LDB_OP_NOT:
- resolve_oids_parse_tree_replace(ldb, schema,
+ return resolve_oids_parse_tree_replace(ldb, schema,
tree->u.isnot.child);
- return LDB_SUCCESS;
case LDB_OP_EQUALITY:
case LDB_OP_GREATER:
case LDB_OP_LESS: