diff options
author | Michael Adam <obnox@samba.org> | 2008-04-04 17:24:53 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-04-04 17:24:53 +0200 |
commit | ae790f9b89779a0fa1ba4ecfb5b99df160d222fd (patch) | |
tree | 990e50a84f6dae480867d93eb6cf212f5d4c7fe7 /source3/utils/net_registry_util.c | |
parent | 65088387c061aebd8a847857a5fc87ca7a9257f3 (diff) | |
download | samba-ae790f9b89779a0fa1ba4ecfb5b99df160d222fd.tar.gz samba-ae790f9b89779a0fa1ba4ecfb5b99df160d222fd.tar.bz2 samba-ae790f9b89779a0fa1ba4ecfb5b99df160d222fd.zip |
net: change split_hive_key() to properly allocate subkeyname
instead of returning a pointer into another string.
Michael
(This used to be commit 68d08ecf92be3444b759300237b2b7cf5238d022)
Diffstat (limited to 'source3/utils/net_registry_util.c')
-rw-r--r-- | source3/utils/net_registry_util.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source3/utils/net_registry_util.c b/source3/utils/net_registry_util.c index b1d0c7765c..948f8b6153 100644 --- a/source3/utils/net_registry_util.c +++ b/source3/utils/net_registry_util.c @@ -72,9 +72,10 @@ void print_registry_value(const char *valname, * - strip trailing '\\' chars */ WERROR split_hive_key(TALLOC_CTX *ctx, const char *path, char **hivename, - const char **subkeyname) + char **subkeyname) { char *p; + const char *tmp_subkeyname; if ((path == NULL) || (hivename == NULL) || (subkeyname == NULL)) { return WERR_INVALID_PARAM; @@ -100,10 +101,14 @@ WERROR split_hive_key(TALLOC_CTX *ctx, const char *path, char **hivename, if ((p == NULL) || (*p == '\0')) { /* just the hive - no subkey given */ - *subkeyname = ""; + tmp_subkeyname = ""; } else { *p = '\0'; - *subkeyname = p+1; + tmp_subkeyname = p+1; + } + *subkeyname = talloc_strdup(ctx, tmp_subkeyname); + if (*subkeyname == NULL) { + return WERR_NOMEM; } return WERR_OK; |