diff options
author | David Disseldorp <ddiss@suse.de> | 2011-07-06 12:19:05 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-07-08 15:22:27 +0200 |
commit | 12710662006594156abcaa94f5574e52bb66fdf6 (patch) | |
tree | 701eed1281efc99ab4f4856f975924418b373956 /source3/rpc_client | |
parent | d6cd1ee03296a809a98031ca52de72a7757b4058 (diff) | |
download | samba-12710662006594156abcaa94f5574e52bb66fdf6.tar.gz samba-12710662006594156abcaa94f5574e52bb66fdf6.tar.bz2 samba-12710662006594156abcaa94f5574e52bb66fdf6.zip |
winreg: Use the ntstatus return code for client side errors
cli_winreg.c functions indicate status to the caller in two ways. The
ntstatus return code indicates client side errors, the pwerr argument
carries the server response error code.
Many functions are filling the pwerr argument on client side error, this
change removes these cases.
Signed-off-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'source3/rpc_client')
-rw-r--r-- | source3/rpc_client/cli_winreg.c | 58 |
1 files changed, 21 insertions, 37 deletions
diff --git a/source3/rpc_client/cli_winreg.c b/source3/rpc_client/cli_winreg.c index e5ebc25ed8..1b8898fd9d 100644 --- a/source3/rpc_client/cli_winreg.c +++ b/source3/rpc_client/cli_winreg.c @@ -60,19 +60,16 @@ NTSTATUS dcerpc_winreg_query_dword(TALLOC_CTX *mem_ctx, } if (type != REG_DWORD) { - *pwerr = WERR_INVALID_DATATYPE; - return status; + return NT_STATUS_OBJECT_TYPE_MISMATCH; } if (data_size != 4) { - *pwerr = WERR_INVALID_DATA; - return status; + return NT_STATUS_INVALID_PARAMETER; } blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { - *pwerr = WERR_NOMEM; - return status; + return NT_STATUS_NO_MEMORY; } value_len = 0; @@ -136,14 +133,12 @@ NTSTATUS dcerpc_winreg_query_binary(TALLOC_CTX *mem_ctx, } if (type != REG_BINARY) { - *pwerr = WERR_INVALID_DATATYPE; - return status; + return NT_STATUS_OBJECT_TYPE_MISMATCH; } blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { - *pwerr = WERR_NOMEM; - return status; + return NT_STATUS_NO_MEMORY; } value_len = 0; @@ -207,14 +202,12 @@ NTSTATUS dcerpc_winreg_query_multi_sz(TALLOC_CTX *mem_ctx, } if (type != REG_MULTI_SZ) { - *pwerr = WERR_INVALID_DATATYPE; - return status; + return NT_STATUS_OBJECT_TYPE_MISMATCH; } blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { - *pwerr = WERR_NOMEM; - return status; + return NT_STATUS_NO_MEMORY; } value_len = 0; @@ -240,7 +233,7 @@ NTSTATUS dcerpc_winreg_query_multi_sz(TALLOC_CTX *mem_ctx, ok = pull_reg_multi_sz(mem_ctx, &blob, data); if (!ok) { - *pwerr = WERR_NOMEM; + status = NT_STATUS_NO_MEMORY; } } @@ -282,14 +275,12 @@ NTSTATUS dcerpc_winreg_query_sz(TALLOC_CTX *mem_ctx, } if (type != REG_SZ) { - *pwerr = WERR_INVALID_DATATYPE; - return status; + return NT_STATUS_OBJECT_TYPE_MISMATCH; } blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { - *pwerr = WERR_NOMEM; - return status; + return NT_STATUS_NO_MEMORY; } value_len = 0; @@ -315,7 +306,7 @@ NTSTATUS dcerpc_winreg_query_sz(TALLOC_CTX *mem_ctx, ok = pull_reg_sz(mem_ctx, &blob, data); if (!ok) { - *pwerr = WERR_NOMEM; + status = NT_STATUS_NO_MEMORY; } } @@ -353,8 +344,7 @@ NTSTATUS dcerpc_winreg_query_sd(TALLOC_CTX *mem_ctx, sd = talloc_zero(mem_ctx, struct security_descriptor); if (sd == NULL) { - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } ndr_err = ndr_pull_struct_blob(&blob, @@ -364,8 +354,7 @@ NTSTATUS dcerpc_winreg_query_sd(TALLOC_CTX *mem_ctx, if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { DEBUG(2, ("dcerpc_winreg_query_sd: Failed to marshall " "security descriptor\n")); - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } *data = sd; @@ -429,8 +418,7 @@ NTSTATUS dcerpc_winreg_set_sz(TALLOC_CTX *mem_ctx, DEBUG(2, ("dcerpc_winreg_set_sz: Could not marshall " "string %s for %s\n", data, wvalue.name)); - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } } @@ -472,8 +460,7 @@ NTSTATUS dcerpc_winreg_set_expand_sz(TALLOC_CTX *mem_ctx, DEBUG(2, ("dcerpc_winreg_set_expand_sz: Could not marshall " "string %s for %s\n", data, wvalue.name)); - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } } @@ -512,8 +499,7 @@ NTSTATUS dcerpc_winreg_set_multi_sz(TALLOC_CTX *mem_ctx, DEBUG(2, ("dcerpc_winreg_set_multi_sz: Could not marshall " "string multi sz for %s\n", wvalue.name)); - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } status = dcerpc_winreg_SetValue(h, @@ -582,8 +568,7 @@ NTSTATUS dcerpc_winreg_set_sd(TALLOC_CTX *mem_ctx, if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { DEBUG(2, ("dcerpc_winreg_set_sd: Failed to marshall security " "descriptor\n")); - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } return dcerpc_winreg_set_binary(mem_ctx, @@ -619,8 +604,7 @@ NTSTATUS dcerpc_winreg_add_multi_sz(TALLOC_CTX *mem_ctx, p = talloc_realloc(mem_ctx, a, const char *, i + 2); if (p == NULL) { - *pwerr = WERR_NOMEM; - return NT_STATUS_OK; + return NT_STATUS_NO_MEMORY; } p[i] = data; @@ -684,14 +668,14 @@ NTSTATUS dcerpc_winreg_enum_keys(TALLOC_CTX *mem_ctx, subkeys = talloc_zero_array(tmp_ctx, const char *, num_subkeys + 2); if (subkeys == NULL) { - *pwerr = WERR_NOMEM; + status = NT_STATUS_NO_MEMORY; goto error; } if (num_subkeys == 0) { subkeys[0] = talloc_strdup(subkeys, ""); if (subkeys[0] == NULL) { - *pwerr = WERR_NOMEM; + status = NT_STATUS_NO_MEMORY; goto error; } *pnum_subkeys = 0; @@ -753,7 +737,7 @@ NTSTATUS dcerpc_winreg_enum_keys(TALLOC_CTX *mem_ctx, name = talloc_strdup(subkeys, name_buf.name); if (name == NULL) { - *pwerr = WERR_NOMEM; + status = NT_STATUS_NO_MEMORY; goto error; } |