summaryrefslogtreecommitdiff
path: root/source3/registry/reg_cachehook.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/registry/reg_cachehook.c')
-rw-r--r--source3/registry/reg_cachehook.c11
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 );