1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-09 08:58:35 +03:00

Change registry_create_admin_token() to return NTSTATUS.

Michael
(This used to be commit 9cd30fb25c42e79946b5140994d0bf2ef4c62f90)
This commit is contained in:
Michael Adam 2008-01-09 01:17:13 +01:00
parent f269ed866d
commit 22068a0c16
3 changed files with 18 additions and 10 deletions

View File

@ -31,14 +31,20 @@ extern REGISTRY_OPS smbconf_reg_ops;
* - builtin administrators sid
* - disk operators privilege
*/
NT_USER_TOKEN *registry_create_admin_token(TALLOC_CTX *mem_ctx)
NTSTATUS registry_create_admin_token(TALLOC_CTX *mem_ctx,
NT_USER_TOKEN **ptoken)
{
NTSTATUS status;
NT_USER_TOKEN *token = NULL;
if (ptoken == NULL) {
return NT_STATUS_INVALID_PARAMETER;
}
token = TALLOC_ZERO_P(mem_ctx, NT_USER_TOKEN);
if (token == NULL) {
DEBUG(1, ("talloc failed\n"));
status = NT_STATUS_NO_MEMORY;
goto done;
}
token->privileges = se_disk_operators;
@ -49,8 +55,11 @@ NT_USER_TOKEN *registry_create_admin_token(TALLOC_CTX *mem_ctx)
"to fake token.\n"));
goto done;
}
*ptoken = token;
done:
return token;
return status;
}
/*

View File

@ -87,7 +87,7 @@ static WERROR libnet_conf_reg_open_path(TALLOC_CTX *mem_ctx,
struct registry_key **key)
{
WERROR werr = WERR_OK;
NT_USER_TOKEN *token;
NT_USER_TOKEN *token = NULL;
TALLOC_CTX *tmp_ctx = NULL;
if (path == NULL) {
@ -109,11 +109,9 @@ static WERROR libnet_conf_reg_open_path(TALLOC_CTX *mem_ctx,
goto done;
}
token = registry_create_admin_token(tmp_ctx);
if (token == NULL) {
werr = ntstatus_to_werror(registry_create_admin_token(tmp_ctx, &token));
if (W_ERROR_IS_OK(werr)) {
DEBUG(1, ("Error creating admin token\n"));
/* what is the appropriate error code here? */
werr = WERR_CAN_NOT_COMPLETE;
goto done;
}

View File

@ -3529,7 +3529,7 @@ static bool process_registry_globals(bool (*pfunc)(const char *, const char *))
char *valname = NULL;
char *valstr = NULL;
uint32 idx = 0;
NT_USER_TOKEN *token;
NT_USER_TOKEN *token = NULL;
ctx = talloc_init("process_registry_globals");
if (!ctx) {
@ -3543,8 +3543,9 @@ static bool process_registry_globals(bool (*pfunc)(const char *, const char *))
goto done;
}
if (!(token = registry_create_admin_token(ctx))) {
DEBUG(1, ("Error creating admin token\n"));
werr = ntstatus_to_werror(registry_create_admin_token(ctx, &token));
if (!W_ERROR_IS_OK(werr)) {
DEBUG(1, ("Error creating admin token: %s\n",dos_errstr(werr)));
goto done;
}