From de8a339cdf95f6737a8b1d34aa2aa9287bae0e46 Mon Sep 17 00:00:00 2001 From: Matthias Dieter Wallnöfer Date: Tue, 29 Jun 2010 16:10:32 +0200 Subject: s4:registry - move some common constraint checks to the "local" backend They should also be enforced when we don't use "ldb". --- source4/lib/registry/ldb.c | 24 ------------------------ source4/lib/registry/local.c | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/source4/lib/registry/ldb.c b/source4/lib/registry/ldb.c index b4eae9a341..122f565813 100644 --- a/source4/lib/registry/ldb.c +++ b/source4/lib/registry/ldb.c @@ -466,10 +466,6 @@ static WERROR ldb_get_value(TALLOC_CTX *mem_ctx, struct hive_key *k, const char *res_name; uint32_t idx; - if (name == NULL) { - return WERR_INVALID_PARAM; - } - /* the default value was requested, give it back */ if (name[0] == '\0') { return ldb_get_default_value(mem_ctx, k, NULL, data_type, data); @@ -503,10 +499,6 @@ static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, const struct hive_key *h, struct ldb_key_data *kd = talloc_get_type(h, struct ldb_key_data); struct ldb_context *c = kd->ldb; - if (name == NULL) { - return WERR_INVALID_PARAM; - } - ldb_path = reg_path_to_ldb(mem_ctx, h, name, NULL); W_ERROR_HAVE_NO_MEMORY(ldb_path); @@ -593,10 +585,6 @@ static WERROR ldb_add_key(TALLOC_CTX *mem_ctx, const struct hive_key *parent, struct ldb_key_data *newkd; int ret; - if (name == NULL) { - return WERR_INVALID_PARAM; - } - ldb_path = reg_path_to_ldb(mem_ctx, parent, name, NULL); W_ERROR_HAVE_NO_MEMORY(ldb_path); @@ -649,10 +637,6 @@ static WERROR ldb_del_value(TALLOC_CTX *mem_ctx, struct hive_key *key, struct ldb_message *msg; struct ldb_dn *childdn; - if (child == NULL) { - return WERR_INVALID_PARAM; - } - if (child[0] == '\0') { /* default value */ msg = talloc_zero(mem_ctx, struct ldb_message); @@ -709,10 +693,6 @@ static WERROR ldb_del_key(TALLOC_CTX *mem_ctx, const struct hive_key *key, WERROR werr; struct hive_key *hk; - if (name == NULL) { - return WERR_INVALID_PARAM; - } - /* Verify key exists by opening it */ werr = ldb_open_key(mem_ctx, key, name, &hk); if (!W_ERROR_IS_OK(werr)) { @@ -816,10 +796,6 @@ static WERROR ldb_set_value(struct hive_key *parent, int ret; TALLOC_CTX *mem_ctx = talloc_init("ldb_set_value"); - if (name == NULL) { - return WERR_INVALID_PARAM; - } - msg = reg_ldb_pack_value(kd->ldb, mem_ctx, name, type, data); W_ERROR_HAVE_NO_MEMORY(msg); diff --git a/source4/lib/registry/local.c b/source4/lib/registry/local.c index 3078518539..98791743ae 100644 --- a/source4/lib/registry/local.c +++ b/source4/lib/registry/local.c @@ -80,6 +80,10 @@ static WERROR local_open_key(TALLOC_CTX *mem_ctx, const char **elements = NULL; int el; + if (path == NULL) { + return WERR_INVALID_PARAM; + } + orig = talloc_strdup(mem_ctx, path); W_ERROR_HAVE_NO_MEMORY(orig); curbegin = orig; @@ -180,6 +184,10 @@ static WERROR local_create_key(TALLOC_CTX *mem_ctx, const char **elements = NULL; int el; + if (path == NULL) { + return WERR_INVALID_PARAM; + } + orig = talloc_strdup(mem_ctx, path); W_ERROR_HAVE_NO_MEMORY(orig); curbegin = orig; @@ -240,6 +248,10 @@ static WERROR local_set_value(struct registry_key *key, const char *name, { struct local_key *local = (struct local_key *)key; + if (name == NULL) { + return WERR_INVALID_PARAM; + } + return hive_key_set_value(local->hive_key, name, type, data); } @@ -249,6 +261,10 @@ static WERROR local_get_value(TALLOC_CTX *mem_ctx, { const struct local_key *local = (const struct local_key *)key; + if (name == NULL) { + return WERR_INVALID_PARAM; + } + return hive_get_value(mem_ctx, local->hive_key, name, type, data); } @@ -269,6 +285,10 @@ static WERROR local_delete_key(TALLOC_CTX *mem_ctx, struct registry_key *key, { const struct local_key *local = (const struct local_key *)key; + if (name == NULL) { + return WERR_INVALID_PARAM; + } + return hive_key_del(mem_ctx, local->hive_key, name); } @@ -277,6 +297,10 @@ static WERROR local_delete_value(TALLOC_CTX *mem_ctx, struct registry_key *key, { const struct local_key *local = (const struct local_key *)key; + if (name == NULL) { + return WERR_INVALID_PARAM; + } + return hive_key_del_value(mem_ctx, local->hive_key, name); } -- cgit