From bfad4421449d7f49287b1ebe81bf572c271f8fca Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 19 Nov 2006 11:11:01 +0000 Subject: r19780: Ok, regkey_open_internal needs a regkey_close_internal. Giving a talloc ctx is misleading here. This needs fixing properly :-) Volker (This used to be commit f808182346aa16bb2f3a9383e28d318099a5e14e) --- source3/registry/reg_frontend.c | 5 ++--- source3/rpc_server/srv_eventlog_nt.c | 5 +++-- source3/rpc_server/srv_winreg_nt.c | 4 +--- source3/services/services_db.c | 25 +++++++++++-------------- 4 files changed, 17 insertions(+), 22 deletions(-) (limited to 'source3') diff --git a/source3/registry/reg_frontend.c b/source3/registry/reg_frontend.c index d79e75b995..ed49cc998c 100644 --- a/source3/registry/reg_frontend.c +++ b/source3/registry/reg_frontend.c @@ -345,8 +345,7 @@ BOOL regkey_access_check( REGISTRY_KEY *key, uint32 requested, uint32 *granted, /*********************************************************************** ***********************************************************************/ -WERROR regkey_open_internal( TALLOC_CTX *mem_ctx, - REGISTRY_KEY **regkey, const char *path, +WERROR regkey_open_internal( REGISTRY_KEY **regkey, const char *path, NT_USER_TOKEN *token, uint32 access_desired ) { WERROR result = WERR_OK; @@ -359,7 +358,7 @@ WERROR regkey_open_internal( TALLOC_CTX *mem_ctx, DEBUG(7,("regkey_open_internal: name = [%s]\n", path)); - if ( !(*regkey = TALLOC_ZERO_P(mem_ctx, REGISTRY_KEY)) ) { + if ( !(*regkey = TALLOC_ZERO_P(NULL, REGISTRY_KEY)) ) { regdb_close(); return WERR_NOMEM; } diff --git a/source3/rpc_server/srv_eventlog_nt.c b/source3/rpc_server/srv_eventlog_nt.c index ba366ed983..ec07981de9 100644 --- a/source3/rpc_server/srv_eventlog_nt.c +++ b/source3/rpc_server/srv_eventlog_nt.c @@ -411,8 +411,9 @@ static BOOL sync_eventlog_params( EVENTLOG_INFO *info ) pstr_sprintf( path, "%s/%s", KEY_EVENTLOG, elogname ); - wresult = regkey_open_internal( - NULL, &keyinfo, path, get_root_nt_token(), REG_KEY_READ ); + wresult = + regkey_open_internal( &keyinfo, path, get_root_nt_token( ), + REG_KEY_READ ); if ( !W_ERROR_IS_OK( wresult ) ) { DEBUG( 4, diff --git a/source3/rpc_server/srv_winreg_nt.c b/source3/rpc_server/srv_winreg_nt.c index ebf825b684..1a130f19b6 100644 --- a/source3/rpc_server/srv_winreg_nt.c +++ b/source3/rpc_server/srv_winreg_nt.c @@ -86,9 +86,7 @@ static WERROR open_registry_key( pipes_struct *p, POLICY_HND *hnd, /* now do the internal open */ - result = regkey_open_internal( NULL, keyinfo, keypath, - p->pipe_user.nt_user_token, - access_desired ); + result = regkey_open_internal( keyinfo, keypath, p->pipe_user.nt_user_token, access_desired ); if ( !W_ERROR_IS_OK(result) ) return result; diff --git a/source3/services/services_db.c b/source3/services/services_db.c index 7573d3ba2d..5b4f58d766 100644 --- a/source3/services/services_db.c +++ b/source3/services/services_db.c @@ -322,8 +322,8 @@ static void add_new_svc_name( REGISTRY_KEY *key_parent, REGSUBKEY_CTR *subkeys, /* open the new service key */ pstr_sprintf( path, "%s\\%s", KEY_SERVICES, name ); - wresult = regkey_open_internal( NULL, &key_service, path, - get_root_nt_token(), REG_KEY_ALL ); + wresult = regkey_open_internal( &key_service, path, get_root_nt_token(), + REG_KEY_ALL ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("add_new_svc_name: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); @@ -360,8 +360,8 @@ static void add_new_svc_name( REGISTRY_KEY *key_parent, REGSUBKEY_CTR *subkeys, /* now add the security descriptor */ pstr_sprintf( path, "%s\\%s\\%s", KEY_SERVICES, name, "Security" ); - wresult = regkey_open_internal( NULL, &key_secdesc, path, - get_root_nt_token(), REG_KEY_ALL ); + wresult = regkey_open_internal( &key_secdesc, path, get_root_nt_token(), + REG_KEY_ALL ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("add_new_svc_name: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); @@ -412,8 +412,8 @@ void svcctl_init_keys( void ) /* bad mojo here if the lookup failed. Should not happen */ - wresult = regkey_open_internal( NULL, &key, KEY_SERVICES, - get_root_nt_token(), REG_KEY_ALL ); + wresult = regkey_open_internal( &key, KEY_SERVICES, get_root_nt_token(), + REG_KEY_ALL ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("init_services_keys: key lookup failed! (%s)\n", @@ -476,7 +476,7 @@ SEC_DESC* svcctl_get_secdesc( TALLOC_CTX *ctx, const char *name, NT_USER_TOKEN * /* now add the security descriptor */ pstr_sprintf( path, "%s\\%s\\%s", KEY_SERVICES, name, "Security" ); - wresult = regkey_open_internal( NULL, &key, path, token, REG_KEY_ALL ); + wresult = regkey_open_internal( &key, path, token, REG_KEY_ALL ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("svcctl_get_secdesc: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); @@ -535,7 +535,7 @@ BOOL svcctl_set_secdesc( TALLOC_CTX *ctx, const char *name, SEC_DESC *sec_desc, /* now add the security descriptor */ pstr_sprintf( path, "%s\\%s\\%s", KEY_SERVICES, name, "Security" ); - wresult = regkey_open_internal( NULL, &key, path, token, REG_KEY_ALL ); + wresult = regkey_open_internal( &key, path, token, REG_KEY_ALL ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("svcctl_get_secdesc: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); @@ -581,8 +581,7 @@ char* svcctl_lookup_dispname( const char *name, NT_USER_TOKEN *token ) /* now add the security descriptor */ pstr_sprintf( path, "%s\\%s", KEY_SERVICES, name ); - wresult = regkey_open_internal( NULL, &key, path, token, - REG_KEY_READ ); + wresult = regkey_open_internal( &key, path, token, REG_KEY_READ ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("svcctl_lookup_dispname: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); @@ -628,8 +627,7 @@ char* svcctl_lookup_description( const char *name, NT_USER_TOKEN *token ) /* now add the security descriptor */ pstr_sprintf( path, "%s\\%s", KEY_SERVICES, name ); - wresult = regkey_open_internal( NULL, &key, path, token, - REG_KEY_READ ); + wresult = regkey_open_internal( &key, path, token, REG_KEY_READ ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("svcctl_lookup_dispname: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); @@ -668,8 +666,7 @@ REGVAL_CTR* svcctl_fetch_regvalues( const char *name, NT_USER_TOKEN *token ) /* now add the security descriptor */ pstr_sprintf( path, "%s\\%s", KEY_SERVICES, name ); - wresult = regkey_open_internal( NULL, &key, path, token, - REG_KEY_READ ); + wresult = regkey_open_internal( &key, path, token, REG_KEY_READ ); if ( !W_ERROR_IS_OK(wresult) ) { DEBUG(0,("svcctl_fetch_regvalues: key lookup failed! [%s] (%s)\n", path, dos_errstr(wresult))); -- cgit