s4:dsdb: Fix warnings about not set / set but unused / shadowed variables
[metze/samba/wip.git] / source4 / dsdb / samdb / ldb_modules / resolve_oids.c
index aab997d996e5730717c703a82183542d758cd38d..b5c5f8efee7ddb911bb2ac7c66868b92841bec89 100644 (file)
@@ -46,15 +46,14 @@ static int resolve_oids_need_value(struct ldb_context *ldb,
        }
 
        switch (a->attributeID_id) {
-       case DRSUAPI_ATTRIBUTE_objectClass:
-       case DRSUAPI_ATTRIBUTE_subClassOf:
-       case DRSUAPI_ATTRIBUTE_auxiliaryClass:
-       case DRSUAPI_ATTRIBUTE_systemPossSuperiors:
-       case DRSUAPI_ATTRIBUTE_possSuperiors:
+       case DRSUAPI_ATTID_objectClass:
+       case DRSUAPI_ATTID_subClassOf:
+       case DRSUAPI_ATTID_auxiliaryClass:
+       case DRSUAPI_ATTID_systemPossSuperiors:
+       case DRSUAPI_ATTID_possSuperiors:
                str = talloc_strndup(ldb, (char *)valp->data, valp->length);
                if (!str) {
-                       ldb_oom(ldb);
-                       return LDB_ERR_OPERATIONS_ERROR;
+                       return ldb_oom(ldb);
                }
                vo = dsdb_class_by_governsID_oid(schema, str);
                talloc_free(str);
@@ -62,14 +61,13 @@ static int resolve_oids_need_value(struct ldb_context *ldb,
                        return LDB_ERR_COMPARE_FALSE;
                }
                return LDB_ERR_COMPARE_TRUE;
-       case DRSUAPI_ATTRIBUTE_systemMustContain:
-       case DRSUAPI_ATTRIBUTE_systemMayContain:
-       case DRSUAPI_ATTRIBUTE_mustContain:
-       case DRSUAPI_ATTRIBUTE_mayContain:
+       case DRSUAPI_ATTID_systemMustContain:
+       case DRSUAPI_ATTID_systemMayContain:
+       case DRSUAPI_ATTID_mustContain:
+       case DRSUAPI_ATTID_mayContain:
                str = talloc_strndup(ldb, (char *)valp->data, valp->length);
                if (!str) {
-                       ldb_oom(ldb);
-                       return LDB_ERR_OPERATIONS_ERROR;
+                       return ldb_oom(ldb);
                }
                va = dsdb_attribute_by_attributeID_oid(schema, str);
                talloc_free(str);
@@ -77,9 +75,9 @@ static int resolve_oids_need_value(struct ldb_context *ldb,
                        return LDB_ERR_COMPARE_FALSE;
                }
                return LDB_ERR_COMPARE_TRUE;
-       case DRSUAPI_ATTRIBUTE_governsID:
-       case DRSUAPI_ATTRIBUTE_attributeID:
-       case DRSUAPI_ATTRIBUTE_attributeSyntax:
+       case DRSUAPI_ATTID_governsID:
+       case DRSUAPI_ATTID_attributeID:
+       case DRSUAPI_ATTID_attributeSyntax:
                return LDB_ERR_COMPARE_FALSE;
        }
 
@@ -158,10 +156,6 @@ static int resolve_oids_parse_tree_need(struct ldb_context *ldb,
                return LDB_ERR_COMPARE_FALSE;
        }
 
-       if (a->syntax->oMSyntax != 6) {
-               return LDB_ERR_COMPARE_FALSE;
-       }
-
        return resolve_oids_need_value(ldb, schema, a, valp);
 }
 
@@ -200,7 +194,7 @@ static int resolve_oids_message_need(struct ldb_context *ldb,
                                     struct dsdb_schema *schema,
                                     const struct ldb_message *msg)
 {
-       int i;
+       unsigned int i;
 
        for (i=0; i < msg->num_elements; i++) {
                int ret;
@@ -239,15 +233,14 @@ static int resolve_oids_replace_value(struct ldb_context *ldb,
        }
 
        switch (a->attributeID_id) {
-       case DRSUAPI_ATTRIBUTE_objectClass:
-       case DRSUAPI_ATTRIBUTE_subClassOf:
-       case DRSUAPI_ATTRIBUTE_auxiliaryClass:
-       case DRSUAPI_ATTRIBUTE_systemPossSuperiors:
-       case DRSUAPI_ATTRIBUTE_possSuperiors:
+       case DRSUAPI_ATTID_objectClass:
+       case DRSUAPI_ATTID_subClassOf:
+       case DRSUAPI_ATTID_auxiliaryClass:
+       case DRSUAPI_ATTID_systemPossSuperiors:
+       case DRSUAPI_ATTID_possSuperiors:
                str = talloc_strndup(schema, (char *)valp->data, valp->length);
                if (!str) {
-                       ldb_oom(ldb);
-                       return LDB_ERR_OPERATIONS_ERROR;
+                       return ldb_oom(ldb);
                }
                vo = dsdb_class_by_governsID_oid(schema, str);
                talloc_free(str);
@@ -256,14 +249,13 @@ static int resolve_oids_replace_value(struct ldb_context *ldb,
                }
                *valp = data_blob_string_const(vo->lDAPDisplayName);
                return LDB_SUCCESS;
-       case DRSUAPI_ATTRIBUTE_systemMustContain:
-       case DRSUAPI_ATTRIBUTE_systemMayContain:
-       case DRSUAPI_ATTRIBUTE_mustContain:
-       case DRSUAPI_ATTRIBUTE_mayContain:
+       case DRSUAPI_ATTID_systemMustContain:
+       case DRSUAPI_ATTID_systemMayContain:
+       case DRSUAPI_ATTID_mustContain:
+       case DRSUAPI_ATTID_mayContain:
                str = talloc_strndup(schema, (char *)valp->data, valp->length);
                if (!str) {
-                       ldb_oom(ldb);
-                       return LDB_ERR_OPERATIONS_ERROR;
+                       return ldb_oom(ldb);
                }
                va = dsdb_attribute_by_attributeID_oid(schema, str);
                talloc_free(str);
@@ -272,9 +264,9 @@ static int resolve_oids_replace_value(struct ldb_context *ldb,
                }
                *valp = data_blob_string_const(va->lDAPDisplayName);
                return LDB_SUCCESS;
-       case DRSUAPI_ATTRIBUTE_governsID:
-       case DRSUAPI_ATTRIBUTE_attributeID:
-       case DRSUAPI_ATTRIBUTE_attributeSyntax:
+       case DRSUAPI_ATTID_governsID:
+       case DRSUAPI_ATTID_attributeID:
+       case DRSUAPI_ATTID_attributeSyntax:
                return LDB_SUCCESS;
        }
 
@@ -420,11 +412,9 @@ struct resolve_oids_context {
 
 static int resolve_oids_callback(struct ldb_request *req, struct ldb_reply *ares)
 {
-       struct ldb_context *ldb;
        struct resolve_oids_context *ac;
 
        ac = talloc_get_type_abort(req->context, struct resolve_oids_context);
-       ldb = ldb_module_get_ctx(ac->module);
 
        if (!ares) {
                return ldb_module_done(ac->req, NULL, NULL,
@@ -461,7 +451,7 @@ static int resolve_oids_search(struct ldb_module *module, struct ldb_request *re
        bool needed = false;
        const char * const *attrs1;
        const char **attrs2;
-       uint32_t i;
+       unsigned int i;
 
        ldb = ldb_module_get_ctx(module);
        schema = dsdb_get_schema(ldb, NULL);
@@ -509,19 +499,20 @@ static int resolve_oids_search(struct ldb_module *module, struct ldb_request *re
 
        ac = talloc(req, struct resolve_oids_context);
        if (ac == NULL) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
        ac->module = module;
        ac->req = req;
 
        tree = ldb_parse_tree_copy_shallow(ac, req->op.search.tree);
        if (!tree) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
 
-       talloc_reference(tree, schema);
+       schema = talloc_reference(tree, schema);
+       if (!schema) {
+               return ldb_oom(ldb);
+       }
 
        ret = resolve_oids_parse_tree_replace(ldb, schema,
                                              tree);
@@ -529,15 +520,15 @@ static int resolve_oids_search(struct ldb_module *module, struct ldb_request *re
                return ret;
        }
 
-       attrs2 = str_list_copy_const(ac, req->op.search.attrs);
+       attrs2 = str_list_copy_const(ac,
+                                    discard_const_p(const char *, req->op.search.attrs));
        if (req->op.search.attrs && !attrs2) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
 
        for (i=0; attrs2 && attrs2[i]; i++) {
                const char *p;
-               struct dsdb_attribute *a;
+               const struct dsdb_attribute *a;
 
                p = strchr(attrs2[i], '.');
                if (p == NULL) {
@@ -560,6 +551,7 @@ static int resolve_oids_search(struct ldb_module *module, struct ldb_request *re
                                      req->controls,
                                      ac, resolve_oids_callback,
                                      req);
+       LDB_REQ_SET_LOCATION(down_req);
        if (ret != LDB_SUCCESS) {
                return ret;
        }
@@ -599,21 +591,18 @@ static int resolve_oids_add(struct ldb_module *module, struct ldb_request *req)
 
        ac = talloc(req, struct resolve_oids_context);
        if (ac == NULL) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
        ac->module = module;
        ac->req = req;
 
        msg = ldb_msg_copy_shallow(ac, ac->req->op.add.message);
        if (!msg) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
 
        if (!talloc_reference(msg, schema)) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
 
        ret = resolve_oids_message_replace(ldb, schema, msg);
@@ -626,6 +615,7 @@ static int resolve_oids_add(struct ldb_module *module, struct ldb_request *req)
                                req->controls,
                                ac, resolve_oids_callback,
                                req);
+       LDB_REQ_SET_LOCATION(down_req);
        if (ret != LDB_SUCCESS) {
                return ret;
        }
@@ -665,8 +655,7 @@ static int resolve_oids_modify(struct ldb_module *module, struct ldb_request *re
 
        ac = talloc(req, struct resolve_oids_context);
        if (ac == NULL) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
        ac->module = module;
        ac->req = req;
@@ -674,13 +663,11 @@ static int resolve_oids_modify(struct ldb_module *module, struct ldb_request *re
        /* we have to copy the message as the caller might have it as a const */
        msg = ldb_msg_copy_shallow(ac, req->op.mod.message);
        if (msg == NULL) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
 
        if (!talloc_reference(msg, schema)) {
-               ldb_oom(ldb);
-               return LDB_ERR_OPERATIONS_ERROR;
+               return ldb_oom(ldb);
        }
 
        ret = resolve_oids_message_replace(ldb, schema, msg);
@@ -693,6 +680,7 @@ static int resolve_oids_modify(struct ldb_module *module, struct ldb_request *re
                                req->controls,
                                ac, resolve_oids_callback,
                                req);
+       LDB_REQ_SET_LOCATION(down_req);
        if (ret != LDB_SUCCESS) {
                return ret;
        }
@@ -701,10 +689,16 @@ static int resolve_oids_modify(struct ldb_module *module, struct ldb_request *re
        return ldb_next_request(module, down_req);
 }
 
-_PUBLIC_ const struct ldb_module_ops ldb_resolve_oids_module_ops = {
+static const struct ldb_module_ops ldb_resolve_oids_module_ops = {
        .name           = "resolve_oids",
        .search         = resolve_oids_search,
        .add            = resolve_oids_add,
        .modify         = resolve_oids_modify,
 };
 
+
+int ldb_resolve_oids_module_init(const char *version)
+{
+       LDB_MODULE_CHECK_VERSION(version);
+       return ldb_register_module(&ldb_resolve_oids_module_ops);
+}