[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-unstable-876-g49cfe2b
Michael Adam
obnox at samba.org
Mon Dec 24 00:07:56 GMT 2007
The branch, v3-2-test has been updated
via 49cfe2b9ebe03d5985187890445b775047f8a2f4 (commit)
via a657b1c9f17d3cebc86b596f1f2d244750d70a6d (commit)
via 45e3e2451adc1490b62d39d486c169ad53e1d3f3 (commit)
via 2983aba9d092e6ede43f6eb521c17fe3f304d041 (commit)
via 7e8451f2f03b246801783aaf4b3d54465292f8f7 (commit)
via 09e62c765401102480d39a483bfffaf5a054babc (commit)
from 0fe095e85ca981e5660a67f3fb7d7965ae62c667 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit 49cfe2b9ebe03d5985187890445b775047f8a2f4
Author: Michael Adam <obnox at samba.org>
Date: Mon Dec 24 01:03:14 2007 +0100
Do not leak memory in libnet_smbconf_delparm().
Michael
commit a657b1c9f17d3cebc86b596f1f2d244750d70a6d
Author: Michael Adam <obnox at samba.org>
Date: Mon Dec 24 01:00:46 2007 +0100
Do not leak memory in libnet_smbconf_setparm().
Michael
commit 45e3e2451adc1490b62d39d486c169ad53e1d3f3
Author: Michael Adam <obnox at samba.org>
Date: Mon Dec 24 00:57:04 2007 +0100
Use the appropriate boolean constants.
Michael
commit 2983aba9d092e6ede43f6eb521c17fe3f304d041
Author: Michael Adam <obnox at samba.org>
Date: Mon Dec 24 00:56:24 2007 +0100
Make libnet_smbconf_value_exists() use talloc_stackframe().
And not pass a talloc context.
Michael
commit 7e8451f2f03b246801783aaf4b3d54465292f8f7
Author: Michael Adam <obnox at samba.org>
Date: Mon Dec 24 00:53:22 2007 +0100
Make libnet_smbconf_key_exists() use talloc_stackframe().
And not pass a talloc context.
Michael
commit 09e62c765401102480d39a483bfffaf5a054babc
Author: Michael Adam <obnox at samba.org>
Date: Mon Dec 24 00:47:43 2007 +0100
Don't leak memory in libnet_smbconf_getparm().
Michael
-----------------------------------------------------------------------
Summary of changes:
source/libnet/libnet_conf.c | 63 ++++++++++++++++++++++++------------------
source/utils/net_conf.c | 4 +-
2 files changed, 38 insertions(+), 29 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/libnet/libnet_conf.c b/source/libnet/libnet_conf.c
index 3a64c3d..a371915 100644
--- a/source/libnet/libnet_conf.c
+++ b/source/libnet/libnet_conf.c
@@ -62,42 +62,36 @@ done:
/*
* 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;
+ 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;
+ ret = true;
}
-done:
TALLOC_FREE(mem_ctx);
return ret;
}
-static bool libnet_smbconf_value_exists(TALLOC_CTX *ctx,
- struct registry_key *key,
+static bool libnet_smbconf_value_exists(struct registry_key *key,
const char *param)
{
- bool ret = False;
+ bool ret = false;
WERROR werr = WERR_OK;
+ TALLOC_CTX *ctx = talloc_stackframe();
struct registry_value *value = NULL;
werr = reg_queryvalue(ctx, key, param, &value);
if (W_ERROR_IS_OK(werr)) {
- ret = True;
+ ret = true;
}
- TALLOC_FREE(value);
+ TALLOC_FREE(ctx);
return ret;
}
@@ -257,17 +251,21 @@ WERROR libnet_smbconf_setparm(TALLOC_CTX *mem_ctx,
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 {
werr = libnet_smbconf_open_path(mem_ctx, service, REG_KEY_WRITE,
&key);
}
- W_ERROR_NOT_OK_RETURN(werr);
+ if (!W_ERROR_IS_OK(werr)) {
+ goto done;
+ }
werr = libnet_smbconf_reg_setvalue_internal(key, param, valstr);
+done:
+ TALLOC_FREE(key);
return werr;
}
@@ -279,19 +277,25 @@ WERROR libnet_smbconf_getparm(TALLOC_CTX *mem_ctx,
WERROR werr;
struct registry_key *key = NULL;
- if (!libnet_smbconf_key_exists(mem_ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
+ if (!libnet_smbconf_key_exists(service)) {
+ werr = WERR_NO_SUCH_SERVICE;
+ goto done;
}
werr = libnet_smbconf_open_path(mem_ctx, service, REG_KEY_READ, &key);
- W_ERROR_NOT_OK_RETURN(werr);
+ if (!W_ERROR_IS_OK(werr)) {
+ goto done;
+ }
- if (!libnet_smbconf_value_exists(mem_ctx, key, param)) {
- return WERR_INVALID_PARAM;
+ if (!libnet_smbconf_value_exists(key, param)) {
+ werr = WERR_INVALID_PARAM;
+ goto done;
}
werr = reg_queryvalue(mem_ctx, key, param, value);
+done:
+ TALLOC_FREE(key);
return werr;
}
@@ -302,19 +306,24 @@ WERROR libnet_smbconf_delparm(TALLOC_CTX *mem_ctx,
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;
}
werr = libnet_smbconf_open_path(mem_ctx, service, REG_KEY_ALL, &key);
- W_ERROR_NOT_OK_RETURN(werr);
+ if (!W_ERROR_IS_OK(werr)) {
+ goto done;
+ }
- if (!libnet_smbconf_value_exists(mem_ctx, key, param)) {
- return WERR_INVALID_PARAM;
+ if (!libnet_smbconf_value_exists(key, param)) {
+ werr = WERR_INVALID_PARAM;
+ goto done;
}
werr = reg_deletevalue(key, param);
+done:
+ TALLOC_FREE(key);
return werr;
}
diff --git a/source/utils/net_conf.c b/source/utils/net_conf.c
index f3f2321..d09079c 100644
--- a/source/utils/net_conf.c
+++ b/source/utils/net_conf.c
@@ -340,7 +340,7 @@ static int import_process_service(TALLOC_CTX *ctx,
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;
@@ -424,7 +424,7 @@ int net_conf_list(int argc, const char **argv)
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)) {
--
Samba Shared Repository
More information about the samba-cvs
mailing list