/*
* check if a subkey of KEY_SMBCONF of a given name exists
*/
-bool libnet_smbconf_key_exists(TALLOC_CTX *ctx, const char *subkeyname)
+bool libnet_smbconf_key_exists(const char *subkeyname)
{
bool ret = False;
WERROR werr = WERR_OK;
- TALLOC_CTX *mem_ctx;
- struct registry_key *key;
-
- if (!(mem_ctx = talloc_new(ctx))) {
- d_fprintf(stderr, "ERROR: Out of memory...!\n");
- goto done;
- }
+ TALLOC_CTX *mem_ctx = talloc_stackframe();
+ struct registry_key *key = NULL;
werr = libnet_smbconf_open_path_q(mem_ctx, subkeyname, REG_KEY_READ, &key);
if (W_ERROR_IS_OK(werr)) {
ret = True;
}
-done:
TALLOC_FREE(mem_ctx);
return ret;
}
WERROR werr;
struct registry_key *key = NULL;
- if (!libnet_smbconf_key_exists(mem_ctx, service)) {
+ if (!libnet_smbconf_key_exists(service)) {
werr = libnet_smbconf_reg_createkey_internal(mem_ctx, service,
&key);
} else {
WERROR werr;
struct registry_key *key = NULL;
- if (!libnet_smbconf_key_exists(mem_ctx, service)) {
+ if (!libnet_smbconf_key_exists(service)) {
werr = WERR_NO_SUCH_SERVICE;
goto done;
}
struct registry_key *key = NULL;
WERROR werr = WERR_OK;
- if (!libnet_smbconf_key_exists(mem_ctx, service)) {
+ if (!libnet_smbconf_key_exists(service)) {
return WERR_NO_SUCH_SERVICE;
}
if (opt_testmode) {
d_printf("[%s]\n", servicename);
} else {
- if (libnet_smbconf_key_exists(tmp_ctx, servicename)) {
+ if (libnet_smbconf_key_exists(servicename)) {
werr = reg_delkey_internal(tmp_ctx, servicename);
if (!W_ERROR_IS_OK(werr)) {
goto done;
goto done;
}
- if (libnet_smbconf_key_exists(ctx, GLOBAL_NAME)) {
+ if (libnet_smbconf_key_exists(GLOBAL_NAME)) {
werr = reg_openkey(ctx, base_key, GLOBAL_NAME,
REG_KEY_READ, &sub_key);
if (!W_ERROR_IS_OK(werr)) {