diff options
author | Gerald Carter <jerry@samba.org> | 2002-07-19 22:16:03 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2002-07-19 22:16:03 +0000 |
commit | 3c0a9c46d8057b9499d7d48a67ba15f9942d558a (patch) | |
tree | 7f0d36ed16565c30afeba9f1dec14c2f3d486391 /source3/registry/reg_cachehook.c | |
parent | 12e237da6813ca6a40410c73c75152a840f4ea61 (diff) | |
download | samba-3c0a9c46d8057b9499d7d48a67ba15f9942d558a.tar.gz samba-3c0a9c46d8057b9499d7d48a67ba15f9942d558a.tar.bz2 samba-3c0a9c46d8057b9499d7d48a67ba15f9942d558a.zip |
fixed seg fault in registry frontend caused by trying to
use a destroyed TALLOC_CTX*
(This used to be commit 432b9f8d7c20fbf3b2a0906c8a93272abbe43fb6)
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 ); |