r19780: Ok, regkey_open_internal needs a regkey_close_internal. Giving a talloc ctx is
authorVolker Lendecke <vlendec@samba.org>
Sun, 19 Nov 2006 11:11:01 +0000 (11:11 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:15:55 +0000 (12:15 -0500)
misleading here. This needs fixing properly :-)

Volker
(This used to be commit f808182346aa16bb2f3a9383e28d318099a5e14e)

source3/registry/reg_frontend.c
source3/rpc_server/srv_eventlog_nt.c
source3/rpc_server/srv_winreg_nt.c
source3/services/services_db.c

index d79e75b99520592d10940955d9661fb33efad4bf..ed49cc998c7578cbde58e6b0f3517c5646bace2d 100644 (file)
@@ -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;
        }
index ba366ed9832a20aa2df5386803c88c91a12c25a0..ec07981de9a34ff4246b9b3ad7d9e52b724d0570 100644 (file)
@@ -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,
index ebf825b6841c0ab7a702b9b7d19b51cc587b1830..1a130f19b6a560f4dbe4900699dc7372bc017f32 100644 (file)
@@ -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;
        
index 7573d3ba2dc655600964d139106a89d910b2c041..5b4f58d766dd1771eb9aaff600a738684cef85c3 100644 (file)
@@ -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)));