summaryrefslogtreecommitdiff
path: root/source3/registry/reg_cachehook.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2002-07-19 22:16:03 +0000
committerGerald Carter <jerry@samba.org>2002-07-19 22:16:03 +0000
commit3c0a9c46d8057b9499d7d48a67ba15f9942d558a (patch)
tree7f0d36ed16565c30afeba9f1dec14c2f3d486391 /source3/registry/reg_cachehook.c
parent12e237da6813ca6a40410c73c75152a840f4ea61 (diff)
downloadsamba-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.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 );