diff options
Diffstat (limited to 'source3/registry/reg_cachehook.c')
-rw-r--r-- | source3/registry/reg_cachehook.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source3/registry/reg_cachehook.c b/source3/registry/reg_cachehook.c index 346ba20eb7..e2444d8d17 100644 --- a/source3/registry/reg_cachehook.c +++ b/source3/registry/reg_cachehook.c @@ -69,15 +69,20 @@ BOOL reghook_cache_add( REGISTRY_HOOK *hook ) REGISTRY_HOOK* reghook_cache_find( char *keyname ) { char *key; + int len; if ( !keyname ) return NULL; - - if ( (key = strdup( keyname )) == NULL ) { - DEBUG(0,("reghook_cache_find: strdup() failed for string [%s] !?!?!\n", + + len = strlen( keyname ); + if ( !(key = malloc( len + 2 )) ) { + DEBUG(0,("reghook_cache_find: malloc failed for string [%s] !?!?!\n", keyname)); return NULL; } + + *key = '\\'; + strncpy( key+1, keyname, len+1); string_sub( key, "\\", "/", 0 ); |