From: Michael Adam Date: Wed, 22 Sep 2010 04:21:38 +0000 (+0200) Subject: s3:registry: remove unneeded TALLOC_CTX argument from reg_deletekey_recursive X-Git-Url: http://git.samba.org/?p=obnox%2Fsamba-ctdb.git;a=commitdiff_plain;h=6c1881536a818fe65166a789cdf8d4b6a9440c81 s3:registry: remove unneeded TALLOC_CTX argument from reg_deletekey_recursive --- diff --git a/source3/include/proto.h b/source3/include/proto.h index b80a434ddc..1642929955 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5030,11 +5030,9 @@ WERROR reg_deleteallvalues(struct registry_key *key); WERROR reg_open_path(TALLOC_CTX *mem_ctx, const char *orig_path, uint32 desired_access, const struct nt_user_token *token, struct registry_key **pkey); -WERROR reg_deletekey_recursive(TALLOC_CTX *ctx, - struct registry_key *parent, +WERROR reg_deletekey_recursive(struct registry_key *parent, const char *path); -WERROR reg_deletesubkeys_recursive(TALLOC_CTX *ctx, - struct registry_key *parent, +WERROR reg_deletesubkeys_recursive(struct registry_key *parent, const char *path); WERROR reg_create_path(TALLOC_CTX *mem_ctx, const char *orig_path, uint32 desired_access, diff --git a/source3/lib/smbconf/smbconf_reg.c b/source3/lib/smbconf/smbconf_reg.c index 54ce5348a7..f769b60e5d 100644 --- a/source3/lib/smbconf/smbconf_reg.c +++ b/source3/lib/smbconf/smbconf_reg.c @@ -685,7 +685,7 @@ static WERROR smbconf_reg_drop(struct smbconf_ctx *ctx) goto done; } - werr = reg_deletekey_recursive(mem_ctx, parent_key, p+1); + werr = reg_deletekey_recursive(parent_key, p+1); if (!W_ERROR_IS_OK(werr)) { goto done; @@ -877,8 +877,7 @@ static WERROR smbconf_reg_delete_share(struct smbconf_ctx *ctx, TALLOC_CTX *mem_ctx = talloc_stackframe(); if (servicename != NULL) { - werr = reg_deletekey_recursive(mem_ctx, rpd(ctx)->base_key, - servicename); + werr = reg_deletekey_recursive(rpd(ctx)->base_key, servicename); } else { werr = smbconf_reg_delete_values(rpd(ctx)->base_key); } diff --git a/source3/libgpo/gpext/scripts.c b/source3/libgpo/gpext/scripts.c index ddea35c644..0f822ea4e5 100644 --- a/source3/libgpo/gpext/scripts.c +++ b/source3/libgpo/gpext/scripts.c @@ -291,7 +291,7 @@ static WERROR scripts_apply(TALLOC_CTX *mem_ctx, section, count++); W_ERROR_HAVE_NO_MEMORY(keystr); - reg_deletekey_recursive(mem_ctx, root_key, keystr); + reg_deletekey_recursive(root_key, keystr); werr = gp_store_reg_subkey(mem_ctx, keystr, root_key, &root_key); diff --git a/source3/libgpo/gpo_reg.c b/source3/libgpo/gpo_reg.c index 9367bcae9c..1f920c68e0 100644 --- a/source3/libgpo/gpo_reg.c +++ b/source3/libgpo/gpo_reg.c @@ -319,7 +319,7 @@ static WERROR gp_reg_del_groupmembership(TALLOC_CTX *mem_ctx, flags); W_ERROR_HAVE_NO_MEMORY(path); - return reg_deletekey_recursive(mem_ctx, key, path); + return reg_deletekey_recursive(key, path); } @@ -440,7 +440,7 @@ static WERROR gp_del_reg_state(TALLOC_CTX *mem_ctx, struct registry_key *key, const char *path) { - return reg_deletesubkeys_recursive(mem_ctx, key, path); + return reg_deletesubkeys_recursive(key, path); } /**************************************************************** diff --git a/source3/registry/reg_api.c b/source3/registry/reg_api.c index 9aff4b05ca..ed2f44163f 100644 --- a/source3/registry/reg_api.c +++ b/source3/registry/reg_api.c @@ -1066,22 +1066,15 @@ WERROR reg_open_path(TALLOC_CTX *mem_ctx, const char *orig_path, * Note that reg_deletekey returns ACCESS_DENIED when called on a * key that has subkeys. */ -static WERROR reg_deletekey_recursive_internal(TALLOC_CTX *ctx, - struct registry_key *parent, +static WERROR reg_deletekey_recursive_internal(struct registry_key *parent, const char *path, bool del_key) { - TALLOC_CTX *mem_ctx = NULL; WERROR werr = WERR_OK; struct registry_key *key; char *subkey_name = NULL; uint32 i; - - mem_ctx = talloc_new(ctx); - if (mem_ctx == NULL) { - werr = WERR_NOMEM; - goto done; - } + TALLOC_CTX *mem_ctx = talloc_stackframe(); /* recurse through subkeys first */ werr = reg_openkey(mem_ctx, parent, path, REG_KEY_ALL, &key); @@ -1098,9 +1091,7 @@ static WERROR reg_deletekey_recursive_internal(TALLOC_CTX *ctx, */ for (i = regsubkey_ctr_numkeys(key->subkeys) ; i > 0; i--) { subkey_name = regsubkey_ctr_specific_key(key->subkeys, i-1); - werr = reg_deletekey_recursive_internal(mem_ctx, key, - subkey_name, - true); + werr = reg_deletekey_recursive_internal(key, subkey_name, true); W_ERROR_NOT_OK_GOTO_DONE(werr); } @@ -1114,8 +1105,7 @@ done: return werr; } -static WERROR reg_deletekey_recursive_trans(TALLOC_CTX *ctx, - struct registry_key *parent, +static WERROR reg_deletekey_recursive_trans(struct registry_key *parent, const char *path, bool del_key) { @@ -1129,7 +1119,7 @@ static WERROR reg_deletekey_recursive_trans(TALLOC_CTX *ctx, return werr; } - werr = reg_deletekey_recursive_internal(ctx, parent, path, del_key); + werr = reg_deletekey_recursive_internal(parent, path, del_key); if (!W_ERROR_IS_OK(werr)) { DEBUG(1, (__location__ " failed to delete key '%s' from key " @@ -1153,18 +1143,16 @@ static WERROR reg_deletekey_recursive_trans(TALLOC_CTX *ctx, return werr; } -WERROR reg_deletekey_recursive(TALLOC_CTX *ctx, - struct registry_key *parent, +WERROR reg_deletekey_recursive(struct registry_key *parent, const char *path) { - return reg_deletekey_recursive_trans(ctx, parent, path, true); + return reg_deletekey_recursive_trans(parent, path, true); } -WERROR reg_deletesubkeys_recursive(TALLOC_CTX *ctx, - struct registry_key *parent, +WERROR reg_deletesubkeys_recursive(struct registry_key *parent, const char *path) { - return reg_deletekey_recursive_trans(ctx, parent, path, false); + return reg_deletekey_recursive_trans(parent, path, false); } #if 0 diff --git a/source3/utils/net_registry.c b/source3/utils/net_registry.c index c23b2a3ef8..b3e4f862b7 100644 --- a/source3/utils/net_registry.c +++ b/source3/utils/net_registry.c @@ -834,7 +834,7 @@ static WERROR import_delete_key(struct import_ctx* ctx, name = subkeyname; } - werr = reg_deletekey_recursive(mem_ctx, parent, name); + werr = reg_deletekey_recursive(parent, name); if (!W_ERROR_IS_OK(werr)) { d_fprintf(stderr, "reg_deletekey_recursive %s: %s\n", "failed", win_errstr(werr));