From 7d5f0e0893d42b56145a3ffa34e3b4b9906cbd91 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 1 Jan 2008 22:05:13 -0600 Subject: r26639: librpc: Pass iconv convenience on from RPC connection to NDR library, so it can be overridden by OpenChange. (This used to be commit 2f29f80e07adef1f020173f2cd6d947d0ef505ce) --- source4/torture/auth/pac.c | 6 ++++-- source4/torture/ldap/uptodatevector.c | 6 ++++-- source4/torture/raw/qfileinfo.c | 4 +++- source4/torture/rpc/samba3rpc.c | 27 ++++++++++++++++++--------- source4/torture/rpc/samsync.c | 2 +- source4/torture/rpc/winreg.c | 2 +- 6 files changed, 31 insertions(+), 16 deletions(-) (limited to 'source4/torture') diff --git a/source4/torture/auth/pac.c b/source4/torture/auth/pac.c index b579b9e3607..ea9c2237e5b 100644 --- a/source4/torture/auth/pac.c +++ b/source4/torture/auth/pac.c @@ -517,7 +517,8 @@ static bool torture_pac_saved_check(struct torture_context *tctx) * pointer, padding etc algorithms as win2k3. */ if (tmp_blob.length != validate_blob.length) { - ndr_err = ndr_pull_struct_blob(&validate_blob, mem_ctx, &pac_data2, + ndr_err = ndr_pull_struct_blob(&validate_blob, mem_ctx, + lp_iconv_convenience(global_loadparm), &pac_data2, (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA); nt_status = ndr_map_error2ntstatus(ndr_err); torture_assert_ntstatus_ok(tctx, nt_status, "can't parse the PAC"); @@ -538,7 +539,8 @@ static bool torture_pac_saved_check(struct torture_context *tctx) } if (memcmp(tmp_blob.data, validate_blob.data, tmp_blob.length) != 0) { - ndr_err = ndr_pull_struct_blob(&validate_blob, mem_ctx, &pac_data2, + ndr_err = ndr_pull_struct_blob(&validate_blob, mem_ctx, + lp_iconv_convenience(global_loadparm), &pac_data2, (ndr_pull_flags_fn_t)ndr_pull_PAC_DATA); nt_status = ndr_map_error2ntstatus(ndr_err); torture_assert_ntstatus_ok(tctx, nt_status, "can't parse the PAC"); diff --git a/source4/torture/ldap/uptodatevector.c b/source4/torture/ldap/uptodatevector.c index 7bac04caf35..cec330b2f61 100644 --- a/source4/torture/ldap/uptodatevector.c +++ b/source4/torture/ldap/uptodatevector.c @@ -70,7 +70,8 @@ static bool test_check_uptodatevector(struct torture_context *torture, ZERO_STRUCT(utdv1); utdv_val1 = ldb_msg_find_ldb_val(r->msgs[0], "replUpToDateVector"); if (utdv_val1) { - ndr_err = ndr_pull_struct_blob_all(utdv_val1, torture, &utdv1, + ndr_err = ndr_pull_struct_blob_all(utdv_val1, torture, + lp_iconv_convenience(torture->lp_ctx), &utdv1, (ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { return false; @@ -116,7 +117,8 @@ static bool test_check_uptodatevector(struct torture_context *torture, ZERO_STRUCT(utdv); utdv_val = ldb_msg_find_ldb_val(r->msgs[0], "replUpToDateVector"); if (utdv_val) { - ndr_err = ndr_pull_struct_blob_all(utdv_val, torture, &utdv, + ndr_err = ndr_pull_struct_blob_all(utdv_val, torture, + lp_iconv_convenience(torture->lp_ctx), &utdv, (ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { return false; diff --git a/source4/torture/raw/qfileinfo.c b/source4/torture/raw/qfileinfo.c index 7dcd2000e92..65d803882c6 100644 --- a/source4/torture/raw/qfileinfo.c +++ b/source4/torture/raw/qfileinfo.c @@ -26,6 +26,7 @@ #include "librpc/rpc/dcerpc.h" #include "torture/rpc/rpc.h" #include "torture/raw/proto.h" +#include "param/param.h" static struct { const char *name; @@ -845,7 +846,8 @@ bool torture_raw_qfileinfo_pipe(struct torture_context *torture, struct smbcli_tree *ipc_tree; NTSTATUS status; - if (!(p = dcerpc_pipe_init(torture, cli->tree->session->transport->socket->event.ctx))) { + if (!(p = dcerpc_pipe_init(torture, cli->tree->session->transport->socket->event.ctx, + lp_iconv_convenience(torture->lp_ctx)))) { return false; } diff --git a/source4/torture/rpc/samba3rpc.c b/source4/torture/rpc/samba3rpc.c index a63772e9641..36461ad6291 100644 --- a/source4/torture/rpc/samba3rpc.c +++ b/source4/torture/rpc/samba3rpc.c @@ -89,7 +89,8 @@ bool torture_bind_authcontext(struct torture_context *torture) goto done; } - lsa_pipe = dcerpc_pipe_init(mem_ctx, cli->transport->socket->event.ctx); + lsa_pipe = dcerpc_pipe_init(mem_ctx, cli->transport->socket->event.ctx, + lp_iconv_convenience(torture->lp_ctx)); if (lsa_pipe == NULL) { d_printf("dcerpc_pipe_init failed\n"); goto done; @@ -206,7 +207,8 @@ static bool bindtest(struct smbcli_state *cli, } lsa_pipe = dcerpc_pipe_init(mem_ctx, - cli->transport->socket->event.ctx); + cli->transport->socket->event.ctx, + lp_iconv_convenience(lp_ctx)); if (lsa_pipe == NULL) { d_printf("dcerpc_pipe_init failed\n"); goto done; @@ -346,7 +348,8 @@ static NTSTATUS get_usr_handle(struct smbcli_state *cli, uint32_t user_rid,access_granted; samr_pipe = dcerpc_pipe_init(mem_ctx, - cli->transport->socket->event.ctx); + cli->transport->socket->event.ctx, + lp_iconv_convenience(lp_ctx)); if (samr_pipe == NULL) { d_printf("dcerpc_pipe_init failed\n"); status = NT_STATUS_NO_MEMORY; @@ -816,7 +819,8 @@ static bool auth2(struct smbcli_state *cli, } net_pipe = dcerpc_pipe_init(mem_ctx, - cli->transport->socket->event.ctx); + cli->transport->socket->event.ctx, + lp_iconv_convenience(global_loadparm)); if (net_pipe == NULL) { d_printf("dcerpc_pipe_init failed\n"); goto done; @@ -918,7 +922,8 @@ static bool schan(struct smbcli_state *cli, } net_pipe = dcerpc_pipe_init(mem_ctx, - cli->transport->socket->event.ctx); + cli->transport->socket->event.ctx, + lp_iconv_convenience(lp_ctx)); if (net_pipe == NULL) { d_printf("dcerpc_pipe_init failed\n"); goto done; @@ -1366,7 +1371,8 @@ static NTSTATUS pipe_bind_smb(TALLOC_CTX *mem_ctx, NTSTATUS status; if (!(result = dcerpc_pipe_init( - mem_ctx, tree->session->transport->socket->event.ctx))) { + mem_ctx, tree->session->transport->socket->event.ctx, + lp_iconv_convenience(global_loadparm)))) { return NT_STATUS_NO_MEMORY; } @@ -1901,7 +1907,8 @@ bool torture_samba3_rpc_randomauth2(struct torture_context *torture) } if (!(net_pipe = dcerpc_pipe_init( - mem_ctx, cli->transport->socket->event.ctx))) { + mem_ctx, cli->transport->socket->event.ctx, + lp_iconv_convenience(torture->lp_ctx)))) { d_printf("dcerpc_pipe_init failed\n"); goto done; } @@ -2972,7 +2979,8 @@ static NTSTATUS get_shareinfo(TALLOC_CTX *mem_ctx, NTSTATUS status; if (!(p = dcerpc_pipe_init(cli, - cli->transport->socket->event.ctx))) { + cli->transport->socket->event.ctx, + lp_iconv_convenience(global_loadparm)))) { status = NT_STATUS_NO_MEMORY; goto fail; } @@ -3038,7 +3046,8 @@ static NTSTATUS get_hklm_handle(TALLOC_CTX *mem_ctx, } if (!(p = dcerpc_pipe_init(result, - cli->transport->socket->event.ctx))) { + cli->transport->socket->event.ctx, + lp_iconv_convenience(global_loadparm)))) { status = NT_STATUS_NO_MEMORY; goto fail; } diff --git a/source4/torture/rpc/samsync.c b/source4/torture/rpc/samsync.c index e94f2285897..1f7f9f463ea 100644 --- a/source4/torture/rpc/samsync.c +++ b/source4/torture/rpc/samsync.c @@ -548,7 +548,7 @@ static bool samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy data.data = user->user_private_info.SensitiveData; data.length = user->user_private_info.DataLength; creds_arcfour_crypt(samsync_state->creds, data.data, data.length); - ndr_err = ndr_pull_struct_blob(&data, mem_ctx, &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS); + ndr_err = ndr_pull_struct_blob(&data, mem_ctx, lp_iconv_convenience(global_loadparm), &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS); if (NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { if (keys.keys.keys2.lmpassword.length == 16) { sam_rid_crypt(rid, keys.keys.keys2.lmpassword.pwd.hash, lm_hash.hash, 0); diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c index 72435f80547..d77295605f0 100644 --- a/source4/torture/rpc/winreg.c +++ b/source4/torture/rpc/winreg.c @@ -221,7 +221,7 @@ static bool _test_GetKeySecurity(struct dcerpc_pipe *p, sd = talloc_zero(tctx, struct security_descriptor); torture_assert_ndr_success(tctx, - ndr_pull_struct_blob(&sdblob, tctx, sd, + ndr_pull_struct_blob(&sdblob, tctx, NULL, sd, (ndr_pull_flags_fn_t)ndr_pull_security_descriptor), "pull_security_descriptor failed"); -- cgit v1.2.1