From 80c2446321c519797a57b8006942a983f8481d79 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 26 Nov 2007 17:24:56 -0800 Subject: Remove pstrings from nsswitch/ and registry/ Jeremy. (This used to be commit 331c0d6216e1a1607a49ed7eb4078e10138ec16a) --- source3/registry/reg_util.c | 138 +++++++++++++++++++++++--------------------- 1 file changed, 71 insertions(+), 67 deletions(-) (limited to 'source3/registry/reg_util.c') diff --git a/source3/registry/reg_util.c b/source3/registry/reg_util.c index 7eb3c2a3a5..cd0982d09a 100644 --- a/source3/registry/reg_util.c +++ b/source3/registry/reg_util.c @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ @@ -28,100 +28,106 @@ Utility function for splitting the base path of a registry path off by setting base and new_path to the apprapriate offsets withing the path. - + WARNING!! Does modify the original string! ***********************************************************************/ -bool reg_split_path( char *path, char **base, char **new_path ) +bool reg_split_path(char *path, char **base, char **new_path) { char *p; - + *new_path = *base = NULL; - - if ( !path) - return False; - + + if (!path) { + return false; + } *base = path; - - p = strchr( path, '\\' ); - + + p = strchr(path, '\\'); + if ( p ) { *p = '\0'; *new_path = p+1; } - - return True; -} + return true; +} /*********************************************************************** Utility function for splitting the base path of a registry path off by setting base and new_path to the appropriate offsets withing the path. - + WARNING!! Does modify the original string! ***********************************************************************/ -bool reg_split_key( char *path, char **base, char **key ) +bool reg_split_key(char *path, char **base, char **key) { char *p; - + *key = *base = NULL; - - if ( !path) - return False; - + + if (!path) { + return false; + } + *base = path; - - p = strrchr( path, '\\' ); - - if ( p ) { + + p = strrchr(path, '\\'); + + if (p) { *p = '\0'; *key = p+1; } - - return True; -} + return true; +} /********************************************************************** - The full path to the registry key is used as database after the + The full path to the registry key is used as database after the \'s are converted to /'s. Key string is also normalized to UPPER - case. + case. **********************************************************************/ -void normalize_reg_path( pstring keyname ) +char *normalize_reg_path(TALLOC_CTX *ctx, const char *keyname ) { - pstring_sub( keyname, "\\", "/" ); - strupper_m( keyname ); + char *nkeyname = talloc_string_sub(ctx, keyname, "\\", "/"); + if (!nkeyname) { + return NULL; + } + strupper_m(nkeyname); + return nkeyname; } /********************************************************************** move to next non-delimter character *********************************************************************/ -char* reg_remaining_path( const char *key ) +char *reg_remaining_path(TALLOC_CTX *ctx, const char *key) { - pstring new_path; - char *p; - - if ( !key || !*key ) + char *new_path = NULL; + char *p = NULL; + + if (!key || !*key) { return NULL; + } - pstrcpy( new_path, key ); + new_path = talloc_strdup(ctx, key); + if (!new_path) { + return NULL; + } /* normalize_reg_path( new_path ); */ - - if ( !(p = strchr( new_path, '\\' )) ) - { - if ( !(p = strchr( new_path, '/' )) ) + if (!(p = strchr(new_path, '\\')) ) { + if (!(p = strchr( new_path, '/'))) { p = new_path; - else + } else { p++; - } - else + } + } else { p++; - - return talloc_strdup(talloc_tos(), p); + } + + return p; } /********************************************************************** @@ -135,14 +141,14 @@ int regval_convert_multi_sz( uint16 *multi_string, size_t byte_len, char ***valu fstring buffer; uint16 *wp; size_t multi_len = byte_len / 2; - + if ( !multi_string || !values ) return 0; *values = NULL; /* just count the NULLs */ - + for ( i=0; (i