diff options
author | Andreas Schneider <asn@samba.org> | 2010-06-24 16:33:37 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2010-06-25 17:35:41 +0200 |
commit | 15bacaf3c594ac24cf26b0329723e873a5cae43d (patch) | |
tree | 6d49def92215c4fd375d54862a260984702099cd /source3/registry/reg_util_internal.c | |
parent | f540833632ffe2c743e90ef9df1627e69b7a0c7b (diff) | |
download | samba-15bacaf3c594ac24cf26b0329723e873a5cae43d.tar.gz samba-15bacaf3c594ac24cf26b0329723e873a5cae43d.tar.bz2 samba-15bacaf3c594ac24cf26b0329723e873a5cae43d.zip |
s3-registry: Convert registry key delimiter from slash to backslash.
This is needed to support keynames containing a '/' like TCP/IP. Which
is used in serveral standard paths.
Signed-off-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/registry/reg_util_internal.c')
-rw-r--r-- | source3/registry/reg_util_internal.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/source3/registry/reg_util_internal.c b/source3/registry/reg_util_internal.c index 47e2ce576f..a1aeaa405c 100644 --- a/source3/registry/reg_util_internal.c +++ b/source3/registry/reg_util_internal.c @@ -86,9 +86,8 @@ bool reg_split_key(char *path, char **base, char **key) } /** - * The full path to the registry key is used as database key - * after the \'s are converted to /'s. - * Leading and trailing '/' and '\' characters are stripped. + * The full path to the registry key is used as database key. + * Leading and trailing '\' characters are stripped. * Key string is also normalized to UPPER case. */ @@ -97,22 +96,22 @@ char *normalize_reg_path(TALLOC_CTX *ctx, const char *keyname ) char *p; char *nkeyname; - /* skip leading '/' and '\' chars */ + /* skip leading '\' chars */ p = (char *)keyname; - while ((*p == '/') || (*p == '\\')) { + while (*p == '\\') { p++; } - nkeyname = talloc_string_sub(ctx, p, "\\", "/"); + nkeyname = talloc_strdup(ctx, p); if (nkeyname == NULL) { return NULL; } - /* strip trailing '/' chars */ - p = strrchr(nkeyname, '/'); + /* strip trailing '\' chars */ + p = strrchr(nkeyname, '\\'); while ((p != NULL) && (p[1] == '\0')) { *p = '\0'; - p = strrchr(nkeyname, '/'); + p = strrchr(nkeyname, '\\'); } strupper_m(nkeyname); @@ -139,11 +138,7 @@ char *reg_remaining_path(TALLOC_CTX *ctx, const char *key) } /* normalize_reg_path( new_path ); */ if (!(p = strchr(new_path, '\\')) ) { - if (!(p = strchr( new_path, '/'))) { - p = new_path; - } else { - p++; - } + p = new_path; } else { p++; } |