s4:dsdb - always fail if a search filter could not be parsed
[mdw/samba.git] / source4 / dsdb / samdb / ldb_modules / proxy.c
index 1625fdf96b58d86b024ca43fe85b2d74143bf793..c3f12bae3a16dd2d07ee1d19588fcb10121e4331 100644 (file)
@@ -138,7 +138,7 @@ static int load_proxy_info(struct ldb_module *module)
        ldb_set_opaque(proxy->upstream, "credentials", creds);
 
        ret = ldb_connect(proxy->upstream, url, 0, NULL);
-       if (ret != 0) {
+       if (ret != LDB_SUCCESS) {
                ldb_debug(ldb, LDB_DEBUG_FATAL, "proxy failed to connect to %s\n", url);
                goto failed;
        }
@@ -339,6 +339,9 @@ static int proxy_search_bytree(struct ldb_module *module, struct ldb_request *re
 #endif
 
        newtree = proxy_convert_tree(ac, proxy, req->op.search.tree);
+       if (newtree == NULL) {
+               goto failed;
+       }
 
        /* convert the basedn of this search */
        base = ldb_dn_copy(ac, req->op.search.base);
@@ -394,7 +397,13 @@ static int proxy_request(struct ldb_module *module, struct ldb_request *req)
        }
 }
 
-_PUBLIC_ const struct ldb_module_ops ldb_proxy_module_ops = {
+static const struct ldb_module_ops ldb_proxy_module_ops = {
        .name           = "proxy",
        .request        = proxy_request
 };
+
+int ldb_proxy_module_init(const char *version)
+{
+       LDB_MODULE_CHECK_VERSION(version);
+       return ldb_register_module(&ldb_proxy_module_ops);
+}