diff options
| -rw-r--r-- | source4/dsdb/samdb/ldb_modules/kludge_acl.c | 2 | ||||
| -rw-r--r-- | source4/dsdb/samdb/ldb_modules/local_password.c | 5 | ||||
| -rw-r--r-- | source4/dsdb/samdb/ldb_modules/objectguid.c | 4 | ||||
| -rw-r--r-- | source4/dsdb/samdb/ldb_modules/partition.c | 20 | ||||
| -rw-r--r-- | source4/lib/ldb/modules/asq.c | 4 | ||||
| -rw-r--r-- | source4/lib/ldb/modules/paged_results.c | 3 | ||||
| -rw-r--r-- | source4/lib/ldb/modules/sort.c | 2 | 
7 files changed, 25 insertions, 15 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/kludge_acl.c b/source4/dsdb/samdb/ldb_modules/kludge_acl.c index 34f848de8a..79309e82bf 100644 --- a/source4/dsdb/samdb/ldb_modules/kludge_acl.c +++ b/source4/dsdb/samdb/ldb_modules/kludge_acl.c @@ -379,7 +379,7 @@ static int kludge_acl_search(struct ldb_module *module, struct ldb_request *req)  					ac, kludge_acl_callback,  					req);  	if (ret != LDB_SUCCESS) { -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	/* check if there's an SD_FLAGS control */ diff --git a/source4/dsdb/samdb/ldb_modules/local_password.c b/source4/dsdb/samdb/ldb_modules/local_password.c index 58c0f1f0d5..9c386b354d 100644 --- a/source4/dsdb/samdb/ldb_modules/local_password.c +++ b/source4/dsdb/samdb/ldb_modules/local_password.c @@ -633,8 +633,7 @@ static int lpdb_delete_callabck(struct ldb_request *req,  	ret = ldb_next_request(ac->module, search_req);  	if (ret != LDB_SUCCESS) { -		return ldb_module_done(ac->req, NULL, NULL, -					LDB_ERR_OPERATIONS_ERROR); +		return ldb_module_done(ac->req, NULL, NULL, ret);  	}  	return LDB_SUCCESS;  } @@ -1082,7 +1081,7 @@ static int local_password_search(struct ldb_module *module, struct ldb_request *  					ac, lpdb_remote_search_callback,  					req);  	if (ret != LDB_SUCCESS) { -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	/* perform the search */ diff --git a/source4/dsdb/samdb/ldb_modules/objectguid.c b/source4/dsdb/samdb/ldb_modules/objectguid.c index 3d218edc76..12dd402617 100644 --- a/source4/dsdb/samdb/ldb_modules/objectguid.c +++ b/source4/dsdb/samdb/ldb_modules/objectguid.c @@ -209,7 +209,7 @@ static int objectguid_add(struct ldb_module *module, struct ldb_request *req)  				ac, og_op_callback,  				req);  	if (ret != LDB_SUCCESS) { -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	/* go on with the call chain */ @@ -267,7 +267,7 @@ static int objectguid_modify(struct ldb_module *module, struct ldb_request *req)  				ac, og_op_callback,  				req);  	if (ret != LDB_SUCCESS) { -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	/* go on with the call chain */ diff --git a/source4/dsdb/samdb/ldb_modules/partition.c b/source4/dsdb/samdb/ldb_modules/partition.c index 6e86d4c484..c5bbdf8dce 100644 --- a/source4/dsdb/samdb/ldb_modules/partition.c +++ b/source4/dsdb/samdb/ldb_modules/partition.c @@ -829,14 +829,22 @@ static int partition_sequence_number(struct ldb_module *module, struct ldb_reque  					     res,  					     ldb_extended_default_callback,  					     NULL); -	       	ret = ldb_next_request(module, treq); -		if (ret == LDB_SUCCESS) { -			ret = ldb_wait(treq->handle, LDB_WAIT_ALL); +		if (ret != LDB_SUCCESS) { +			talloc_free(res); +			return ret;  		} + +		ret = ldb_next_request(module, treq);  		if (ret != LDB_SUCCESS) {  			talloc_free(res);  			return ret;  		} +		ret = ldb_wait(treq->handle, LDB_WAIT_ALL); +		if (ret != LDB_SUCCESS) { +			talloc_free(res); +			return ret; +		} +  		seqr = talloc_get_type(res->extended->data,  					struct ldb_seqnum_result);  		if (seqr->flags & LDB_SEQ_TIMESTAMP_SEQUENCE) { @@ -1083,7 +1091,7 @@ static int partition_extended_schema_update_now(struct ldb_module *module, struc  	}  	/* fire the first one */ -	ret =  partition_call_first(ac); +	ret = partition_call_first(ac);  	if (ret != LDB_SUCCESS){  		return ret; @@ -1385,14 +1393,14 @@ static int partition_init(struct ldb_module *module)  	if (ret != LDB_SUCCESS) {  		ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_ERROR,  			"partition: Unable to register control with rootdse!\n"); -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	ret = ldb_mod_register_control(module, LDB_CONTROL_SEARCH_OPTIONS_OID);  	if (ret != LDB_SUCCESS) {  		ldb_debug(ldb_module_get_ctx(module), LDB_DEBUG_ERROR,  			"partition: Unable to register control with rootdse!\n"); -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	talloc_free(mem_ctx); diff --git a/source4/lib/ldb/modules/asq.c b/source4/lib/ldb/modules/asq.c index 0819f7f559..491868301c 100644 --- a/source4/lib/ldb/modules/asq.c +++ b/source4/lib/ldb/modules/asq.c @@ -237,7 +237,7 @@ static int asq_build_first_request(struct asq_context *ac, struct ldb_request **  					ac, asq_base_callback,  					ac->req);  	if (ret != LDB_SUCCESS) { -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	return LDB_SUCCESS; @@ -292,7 +292,7 @@ static int asq_build_multiple_requests(struct asq_context *ac, bool *terminated)  						ac, asq_reqs_callback,  						ac->req);  		if (ret != LDB_SUCCESS) { -			return LDB_ERR_OPERATIONS_ERROR; +			return ret;  		}  		/* remove the ASQ control itself */ diff --git a/source4/lib/ldb/modules/paged_results.c b/source4/lib/ldb/modules/paged_results.c index b712f84872..774109ff06 100644 --- a/source4/lib/ldb/modules/paged_results.c +++ b/source4/lib/ldb/modules/paged_results.c @@ -347,6 +347,9 @@ static int paged_search(struct ldb_module *module, struct ldb_request *req)  						ac,  						paged_search_callback,  						req); +		if (ret != LDB_SUCCESS) { +			return ret; +		}  		/* save it locally and remove it from the list */  		/* we do not need to replace them later as we diff --git a/source4/lib/ldb/modules/sort.c b/source4/lib/ldb/modules/sort.c index b4ea017b32..f0aea77018 100644 --- a/source4/lib/ldb/modules/sort.c +++ b/source4/lib/ldb/modules/sort.c @@ -315,7 +315,7 @@ static int server_sort_search(struct ldb_module *module, struct ldb_request *req  					server_sort_search_callback,  					req);  	if (ret != LDB_SUCCESS) { -		return LDB_ERR_OPERATIONS_ERROR; +		return ret;  	}  	/* save it locally and remove it from the list */  | 
