diff options
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_eventlog_nt.c | 7 | ||||
-rw-r--r-- | source3/rpc_server/srv_winreg_nt.c | 19 |
2 files changed, 4 insertions, 22 deletions
diff --git a/source3/rpc_server/srv_eventlog_nt.c b/source3/rpc_server/srv_eventlog_nt.c index ec07981de9..73dfd42184 100644 --- a/source3/rpc_server/srv_eventlog_nt.c +++ b/source3/rpc_server/srv_eventlog_nt.c @@ -411,9 +411,8 @@ static BOOL sync_eventlog_params( EVENTLOG_INFO *info ) pstr_sprintf( path, "%s/%s", KEY_EVENTLOG, elogname ); - wresult = - regkey_open_internal( &keyinfo, path, get_root_nt_token( ), - REG_KEY_READ ); + wresult = regkey_open_internal( NULL, NULL, &keyinfo, path, + get_root_nt_token( ), REG_KEY_READ ); if ( !W_ERROR_IS_OK( wresult ) ) { DEBUG( 4, @@ -436,7 +435,7 @@ static BOOL sync_eventlog_params( EVENTLOG_INFO *info ) if ( ( val = regval_ctr_getvalue( values, "MaxSize" ) ) != NULL ) uiMaxSize = IVAL( regval_data_p( val ), 0 ); - regkey_close_internal( keyinfo ); + TALLOC_FREE( keyinfo ); tdb_store_int32( ELOG_TDB_CTX(info->etdb), EVT_MAXSIZE, uiMaxSize ); tdb_store_int32( ELOG_TDB_CTX(info->etdb), EVT_RETENTION, uiRetention ); diff --git a/source3/rpc_server/srv_winreg_nt.c b/source3/rpc_server/srv_winreg_nt.c index 52de236bce..16c271427e 100644 --- a/source3/rpc_server/srv_winreg_nt.c +++ b/source3/rpc_server/srv_winreg_nt.c @@ -43,7 +43,6 @@ struct regkey_info { static void free_regkey_info(void *ptr) { struct regkey_info *info = (struct regkey_info *)ptr; - regkey_close_internal( info->key ); TALLOC_FREE(info); } @@ -107,36 +106,21 @@ static WERROR open_registry_key( pipes_struct *p, POLICY_HND *hnd, const char *subkeyname, uint32 access_desired ) { - char *keypath; - int path_len; WERROR result = WERR_OK; struct regkey_info *info; /* create a full registry path and strip any trailing '\' characters */ - if (asprintf(&keypath, "%s%s%s", - parent ? parent->name : "", - parent ? "\\" : "", - subkeyname) == -1) { - return WERR_NOMEM; - } - - path_len = strlen( keypath ); - if ( path_len && keypath[path_len-1] == '\\' ) - keypath[path_len-1] = '\0'; - if (!(info = TALLOC_ZERO_P(NULL, struct regkey_info))) { - SAFE_FREE(keypath); return WERR_NOMEM; } /* now do the internal open */ - result = regkey_open_internal( &info->key, keypath, + result = regkey_open_internal( info, parent, &info->key, subkeyname, p->pipe_user.nt_user_token, access_desired ); - SAFE_FREE(keypath); if ( !W_ERROR_IS_OK(result) ) { TALLOC_FREE(info); @@ -144,7 +128,6 @@ static WERROR open_registry_key( pipes_struct *p, POLICY_HND *hnd, } if ( !create_policy_hnd( p, hnd, free_regkey_info, info ) ) { - regkey_close_internal( info->key ); TALLOC_FREE(info); return WERR_BADFILE; } |