From 61873ce94c172c801a4831de5550a8e0fe54c5f5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 13 Dec 2007 22:46:23 +0100 Subject: r26431: Require ndr_push creators to specify a iconv_convenience context. (This used to be commit 7352206f4450fdf881b95bda064cedd9d2477e4c) --- source4/cluster/cluster.c | 4 ++-- source4/cluster/cluster.h | 2 +- source4/cluster/cluster_private.h | 4 +++- source4/cluster/ctdb/ctdb_cluster.c | 1 + source4/cluster/local.c | 3 ++- source4/lib/messaging/messaging.c | 4 ++-- source4/libcli/raw/rawacl.c | 3 ++- source4/librpc/ndr/ndr.c | 14 +++++++------- source4/librpc/ndr/ndr_compression.c | 6 +++--- source4/librpc/ndr/ndr_spoolss_buf.c | 9 +++++---- source4/librpc/rpc/dcerpc.c | 10 +++++----- source4/librpc/rpc/dcerpc_util.c | 4 ++-- source4/librpc/tools/ndrdump.c | 3 ++- source4/ntvfs/common/notify.c | 3 ++- source4/ntvfs/common/opendb_tdb.c | 2 +- source4/ntvfs/ipc/ipc_rap.c | 9 +++++---- source4/rpc_server/dcerpc_server.c | 2 +- source4/rpc_server/dcesrv_auth.c | 2 +- source4/torture/rap/rap.c | 6 +++--- 19 files changed, 50 insertions(+), 41 deletions(-) diff --git a/source4/cluster/cluster.c b/source4/cluster/cluster.c index 673ce2be4e..6bac1dcbe5 100644 --- a/source4/cluster/cluster.c +++ b/source4/cluster/cluster.c @@ -69,10 +69,10 @@ const char *cluster_id_string(TALLOC_CTX *mem_ctx, struct server_id id) /* open a temporary tdb in a cluster friendly manner */ -struct tdb_wrap *cluster_tdb_tmp_open(TALLOC_CTX *mem_ctx, const char *dbname, int flags) +struct tdb_wrap *cluster_tdb_tmp_open(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, const char *dbname, int flags) { cluster_init(); - return ops->cluster_tdb_tmp_open(ops, mem_ctx, dbname, flags); + return ops->cluster_tdb_tmp_open(ops, mem_ctx, lp_ctx, dbname, flags); } diff --git a/source4/cluster/cluster.h b/source4/cluster/cluster.h index c83cc2cfa3..7cd31282cc 100644 --- a/source4/cluster/cluster.h +++ b/source4/cluster/cluster.h @@ -38,7 +38,7 @@ typedef void (*cluster_message_fn_t)(struct messaging_context *, DATA_BLOB); /* prototypes */ struct server_id cluster_id(uint32_t id); const char *cluster_id_string(TALLOC_CTX *mem_ctx, struct server_id id); -struct tdb_wrap *cluster_tdb_tmp_open(TALLOC_CTX *mem_ctx, const char *dbname, int flags); +struct tdb_wrap *cluster_tdb_tmp_open(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, const char *dbname, int flags); void *cluster_backend_handle(void); NTSTATUS cluster_message_init(struct messaging_context *msg, struct server_id server, diff --git a/source4/cluster/cluster_private.h b/source4/cluster/cluster_private.h index 6307ba8ae6..1c895b8640 100644 --- a/source4/cluster/cluster_private.h +++ b/source4/cluster/cluster_private.h @@ -27,7 +27,9 @@ struct cluster_ops { const char *(*cluster_id_string)(struct cluster_ops *ops, TALLOC_CTX *, struct server_id ); struct tdb_wrap *(*cluster_tdb_tmp_open)(struct cluster_ops *, - TALLOC_CTX *, const char *, int); + TALLOC_CTX *, + struct loadparm_context *, + const char *, int); void *(*backend_handle)(struct cluster_ops *); NTSTATUS (*message_init)(struct cluster_ops *ops, struct messaging_context *msg, struct server_id server, diff --git a/source4/cluster/ctdb/ctdb_cluster.c b/source4/cluster/ctdb/ctdb_cluster.c index 6bac350805..9a543ee3ee 100644 --- a/source4/cluster/ctdb/ctdb_cluster.c +++ b/source4/cluster/ctdb/ctdb_cluster.c @@ -80,6 +80,7 @@ static const char *ctdb_id_string(struct cluster_ops *ops, */ static struct tdb_wrap *ctdb_tdb_tmp_open(struct cluster_ops *ops, TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx, const char *dbname, int flags) { const char *dir = lp_parm_string(global_loadparm, NULL, "ctdb", "shared data"); diff --git a/source4/cluster/local.c b/source4/cluster/local.c index c994596930..539e47d271 100644 --- a/source4/cluster/local.c +++ b/source4/cluster/local.c @@ -56,9 +56,10 @@ static const char *local_id_string(struct cluster_ops *ops, */ static struct tdb_wrap *local_tdb_tmp_open(struct cluster_ops *ops, TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx, const char *dbname, int flags) { - char *path = smbd_tmp_path(mem_ctx, global_loadparm, dbname); + char *path = smbd_tmp_path(mem_ctx, lp_ctx, dbname); struct tdb_wrap *w; w = tdb_wrap_open(mem_ctx, path, 0, flags, O_RDWR|O_CREAT, 0600); diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c index df0bfa32a6..9497e5248c 100644 --- a/source4/lib/messaging/messaging.c +++ b/source4/lib/messaging/messaging.c @@ -698,7 +698,7 @@ NTSTATUS irpc_send_reply(struct irpc_message *m, NTSTATUS status) m->header.status = status; /* setup the reply */ - push = ndr_push_init_ctx(m->ndr); + push = ndr_push_init_ctx(m->ndr, lp_iconv_convenience(global_loadparm)); if (push == NULL) { status = NT_STATUS_NO_MEMORY; goto failed; @@ -890,7 +890,7 @@ struct irpc_request *irpc_call_send(struct messaging_context *msg_ctx, header.status = NT_STATUS_OK; /* construct the irpc packet */ - ndr = ndr_push_init_ctx(irpc); + ndr = ndr_push_init_ctx(irpc, lp_iconv_convenience(global_loadparm)); if (ndr == NULL) goto failed; ndr_err = ndr_push_irpc_header(ndr, NDR_SCALARS|NDR_BUFFERS, &header); diff --git a/source4/libcli/raw/rawacl.c b/source4/libcli/raw/rawacl.c index 0f2fdb60af..e7747de94c 100644 --- a/source4/libcli/raw/rawacl.c +++ b/source4/libcli/raw/rawacl.c @@ -21,6 +21,7 @@ #include "includes.h" #include "libcli/raw/libcliraw.h" #include "librpc/gen_ndr/ndr_security.h" +#include "param/param.h" /**************************************************************************** fetch file ACL (async send) @@ -134,7 +135,7 @@ struct smbcli_request *smb_raw_set_secdesc_send(struct smbcli_tree *tree, nt.in.params.data = params; nt.in.params.length = 8; - ndr = ndr_push_init_ctx(NULL); + ndr = ndr_push_init_ctx(NULL, lp_iconv_convenience(global_loadparm)); if (!ndr) return NULL; ndr_err = ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, io->set_secdesc.in.sd); diff --git a/source4/librpc/ndr/ndr.c b/source4/librpc/ndr/ndr.c index 070ad99a82..f547bd3d0f 100644 --- a/source4/librpc/ndr/ndr.c +++ b/source4/librpc/ndr/ndr.c @@ -101,7 +101,7 @@ static enum ndr_err_code ndr_pull_set_offset(struct ndr_pull *ndr, uint32_t ofs) } /* create a ndr_push structure, ready for some marshalling */ -_PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx) +_PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience) { struct ndr_push *ndr; @@ -116,7 +116,7 @@ _PUBLIC_ struct ndr_push *ndr_push_init_ctx(TALLOC_CTX *mem_ctx) if (!ndr->data) { return NULL; } - ndr->iconv_convenience = talloc_reference(ndr, lp_iconv_convenience(global_loadparm)); + ndr->iconv_convenience = talloc_reference(ndr, iconv_convenience); return ndr; } @@ -471,7 +471,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_subcontext_start(struct ndr_push *ndr, { struct ndr_push *subndr; - subndr = ndr_push_init_ctx(ndr); + subndr = ndr_push_init_ctx(ndr, ndr->iconv_convenience); NDR_ERR_HAVE_NO_MEMORY(subndr); subndr->flags = ndr->flags; @@ -759,7 +759,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_struct_blob(DATA_BLOB *blob, TALLOC_CTX *mem ndr_push_flags_fn_t fn) { struct ndr_push *ndr; - ndr = ndr_push_init_ctx(mem_ctx); + ndr = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); NDR_ERR_HAVE_NO_MEMORY(ndr); NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p)); @@ -778,7 +778,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_union_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ uint32_t level, ndr_push_flags_fn_t fn) { struct ndr_push *ndr; - ndr = ndr_push_init_ctx(mem_ctx); + ndr = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); NDR_ERR_HAVE_NO_MEMORY(ndr); NDR_CHECK(ndr_push_set_switch_value(ndr, p, level)); @@ -803,7 +803,7 @@ _PUBLIC_ size_t ndr_size_struct(const void *p, int flags, ndr_push_flags_fn_t pu /* avoid recursion */ if (flags & LIBNDR_FLAG_NO_NDR_SIZE) return 0; - ndr = ndr_push_init_ctx(NULL); + ndr = ndr_push_init_ctx(NULL, lp_iconv_convenience(global_loadparm)); if (!ndr) return 0; ndr->flags |= flags | LIBNDR_FLAG_NO_NDR_SIZE; status = push(ndr, NDR_SCALARS|NDR_BUFFERS, discard_const(p)); @@ -828,7 +828,7 @@ _PUBLIC_ size_t ndr_size_union(const void *p, int flags, uint32_t level, ndr_pus /* avoid recursion */ if (flags & LIBNDR_FLAG_NO_NDR_SIZE) return 0; - ndr = ndr_push_init_ctx(NULL); + ndr = ndr_push_init_ctx(NULL, lp_iconv_convenience(global_loadparm)); if (!ndr) return 0; ndr->flags |= flags | LIBNDR_FLAG_NO_NDR_SIZE; diff --git a/source4/librpc/ndr/ndr_compression.c b/source4/librpc/ndr/ndr_compression.c index 411d4a17e2..310f8c4ce4 100644 --- a/source4/librpc/ndr/ndr_compression.c +++ b/source4/librpc/ndr/ndr_compression.c @@ -86,7 +86,7 @@ static enum ndr_err_code ndr_pull_compression_mszip(struct ndr_pull *subndr, struct decomp_state *decomp_state; bool last = false; - ndrpush = ndr_push_init_ctx(subndr); + ndrpush = ndr_push_init_ctx(subndr, subndr->iconv_convenience); NDR_ERR_HAVE_NO_MEMORY(ndrpush); decomp_state = ZIPdecomp_state(subndr); @@ -197,7 +197,7 @@ static enum ndr_err_code ndr_pull_compression_xpress(struct ndr_pull *subndr, DATA_BLOB uncompressed; bool last = false; - ndrpush = ndr_push_init_ctx(subndr); + ndrpush = ndr_push_init_ctx(subndr, subndr->iconv_convenience); NDR_ERR_HAVE_NO_MEMORY(ndrpush); while (!last) { @@ -264,7 +264,7 @@ enum ndr_err_code ndr_push_compression_start(struct ndr_push *subndr, { struct ndr_push *comndr; - comndr = ndr_push_init_ctx(subndr); + comndr = ndr_push_init_ctx(subndr, subndr->iconv_convenience); NDR_ERR_HAVE_NO_MEMORY(comndr); comndr->flags = subndr->flags; diff --git a/source4/librpc/ndr/ndr_spoolss_buf.c b/source4/librpc/ndr/ndr_spoolss_buf.c index 9800430203..d389c26255 100644 --- a/source4/librpc/ndr/ndr_spoolss_buf.c +++ b/source4/librpc/ndr/ndr_spoolss_buf.c @@ -23,6 +23,7 @@ #include "includes.h" #include "librpc/gen_ndr/ndr_spoolss.h" +#include "param/param.h" #define NDR_SPOOLSS_PUSH_ENUM_IN(fn) do { \ if (!r->in.buffer && r->in.offered != 0) {\ @@ -55,7 +56,7 @@ }\ if (r->in.buffer) {\ DATA_BLOB _data_blob_info;\ - _ndr_info = ndr_push_init_ctx(ndr);\ + _ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);\ NDR_ERR_HAVE_NO_MEMORY(_ndr_info);\ _ndr_info->flags= ndr->flags;\ if (r->out.info) {\ @@ -164,7 +165,7 @@ #define NDR_SPOOLSS_SIZE_ENUM(fn) do { \ struct __##fn __r;\ DATA_BLOB _data_blob_info;\ - struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx);\ + struct ndr_push *_ndr_info = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm));\ if (!_ndr_info) return 0;\ _ndr_info->flags|=0;\ __r.in.level = level;\ @@ -414,7 +415,7 @@ enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flag _r.out.result = r->out.result; { struct __spoolss_GetPrinterData __r; - _ndr_info = ndr_push_init_ctx(ndr); + _ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience); NDR_ERR_HAVE_NO_MEMORY(_ndr_info); _ndr_info->flags= ndr->flags; __r.in.type = r->out.type; @@ -494,7 +495,7 @@ enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flag struct __spoolss_SetPrinterData __r; DATA_BLOB _data_blob_data; - _ndr_data = ndr_push_init_ctx(ndr); + _ndr_data = ndr_push_init_ctx(ndr, ndr->iconv_convenience); NDR_ERR_HAVE_NO_MEMORY(_ndr_data); _ndr_data->flags= ndr->flags; diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index 432cd09094..a1b1f6e825 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -350,7 +350,7 @@ static NTSTATUS ncacn_push_request_sign(struct dcerpc_connection *c, return ncacn_push_auth(blob, mem_ctx, pkt, c->security_state.auth_info); } - ndr = ndr_push_init_ctx(mem_ctx); + ndr = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); if (!ndr) { return NT_STATUS_NO_MEMORY; } @@ -1194,7 +1194,7 @@ static NTSTATUS dcerpc_ndr_validate_in(struct dcerpc_connection *c, return ndr_map_error2ntstatus(ndr_err); } - push = ndr_push_init_ctx(mem_ctx); + push = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); if (!push) { return NT_STATUS_NO_MEMORY; } @@ -1252,7 +1252,7 @@ static NTSTATUS dcerpc_ndr_validate_out(struct dcerpc_connection *c, } memcpy(st, struct_ptr, struct_size); - push = ndr_push_init_ctx(mem_ctx); + push = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); if (!push) { return NT_STATUS_NO_MEMORY; } @@ -1283,7 +1283,7 @@ static NTSTATUS dcerpc_ndr_validate_out(struct dcerpc_connection *c, return ndr_map_error2ntstatus(ndr_err); } - push = ndr_push_init_ctx(mem_ctx); + push = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); if (!push) { return NT_STATUS_NO_MEMORY; } @@ -1354,7 +1354,7 @@ struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p, call = &table->calls[opnum]; /* setup for a ndr_push_* call */ - push = ndr_push_init_ctx(mem_ctx); + push = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); if (!push) { return NULL; } diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c index 2fa34140f6..c53bdca9d1 100644 --- a/source4/librpc/rpc/dcerpc_util.c +++ b/source4/librpc/rpc/dcerpc_util.c @@ -56,7 +56,7 @@ NTSTATUS ncacn_push_auth(DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct ndr_push *ndr; enum ndr_err_code ndr_err; - ndr = ndr_push_init_ctx(mem_ctx); + ndr = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); if (!ndr) { return NT_STATUS_NO_MEMORY; } @@ -466,7 +466,7 @@ NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_synta static DATA_BLOB dcerpc_floor_pack_lhs_data(TALLOC_CTX *mem_ctx, const struct ndr_syntax_id *syntax) { - struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx); + struct ndr_push *ndr = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); ndr->flags |= LIBNDR_FLAG_NOALIGN; diff --git a/source4/librpc/tools/ndrdump.c b/source4/librpc/tools/ndrdump.c index a86b349aa9..7ee702fefb 100644 --- a/source4/librpc/tools/ndrdump.c +++ b/source4/librpc/tools/ndrdump.c @@ -25,6 +25,7 @@ #include "system/locale.h" #include "librpc/ndr/libndr.h" #include "librpc/ndr/ndr_table.h" +#include "param/param.h" #endif static const struct ndr_interface_call *find_function( @@ -379,7 +380,7 @@ static void ndrdump_data(uint8_t *d, uint32_t l, bool force) uint8_t byte_a, byte_b; bool differ; - ndr_v_push = ndr_push_init_ctx(mem_ctx); + ndr_v_push = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(cmdline_lp_ctx)); ndr_err = f->ndr_push(ndr_v_push, flags, st); status = ndr_map_error2ntstatus(ndr_err); diff --git a/source4/ntvfs/common/notify.c b/source4/ntvfs/common/notify.c index 16cf4e4b54..187a349b4b 100644 --- a/source4/ntvfs/common/notify.c +++ b/source4/ntvfs/common/notify.c @@ -35,6 +35,7 @@ #include "ntvfs/common/ntvfs_common.h" #include "ntvfs/sysdep/sys_notify.h" #include "cluster/cluster.h" +#include "param/param.h" struct notify_context { struct tdb_wrap *w; @@ -95,7 +96,7 @@ struct notify_context *notify_init(TALLOC_CTX *mem_ctx, struct server_id server, return NULL; } - notify->w = cluster_tdb_tmp_open(notify, "notify.tdb", TDB_SEQNUM); + notify->w = cluster_tdb_tmp_open(notify, global_loadparm, "notify.tdb", TDB_SEQNUM); if (notify->w == NULL) { talloc_free(notify); return NULL; diff --git a/source4/ntvfs/common/opendb_tdb.c b/source4/ntvfs/common/opendb_tdb.c index b8b8a5cb33..41b5ad2ebe 100644 --- a/source4/ntvfs/common/opendb_tdb.c +++ b/source4/ntvfs/common/opendb_tdb.c @@ -79,7 +79,7 @@ static struct odb_context *odb_tdb_init(TALLOC_CTX *mem_ctx, return NULL; } - odb->w = cluster_tdb_tmp_open(odb, "openfiles.tdb", TDB_DEFAULT); + odb->w = cluster_tdb_tmp_open(odb, ntvfs_ctx->lp_ctx, "openfiles.tdb", TDB_DEFAULT); if (odb->w == NULL) { talloc_free(odb); return NULL; diff --git a/source4/ntvfs/ipc/ipc_rap.c b/source4/ntvfs/ipc/ipc_rap.c index d8e9812dd8..0636e42e16 100644 --- a/source4/ntvfs/ipc/ipc_rap.c +++ b/source4/ntvfs/ipc/ipc_rap.c @@ -23,6 +23,7 @@ #include "libcli/rap/rap.h" #include "ntvfs/ipc/proto.h" #include "librpc/ndr/libndr.h" +#include "param/param.h" #define NDR_RETURN(call) do { \ enum ndr_err_code _ndr_err; \ @@ -444,8 +445,8 @@ NTSTATUS ipc_rap_call(TALLOC_CTX *mem_ctx, struct smb_trans2 *trans) NDR_RETURN(ndr_pull_string(call->ndr_pull_param, NDR_SCALARS, &call->datadesc)); - call->ndr_push_param = ndr_push_init_ctx(call); - call->ndr_push_data = ndr_push_init_ctx(call); + call->ndr_push_param = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); + call->ndr_push_data = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); if ((call->ndr_push_param == NULL) || (call->ndr_push_data == NULL)) return NT_STATUS_NO_MEMORY; @@ -470,8 +471,8 @@ NTSTATUS ipc_rap_call(TALLOC_CTX *mem_ctx, struct smb_trans2 *trans) result_param = ndr_push_blob(call->ndr_push_param); result_data = ndr_push_blob(call->ndr_push_data); - final_param = ndr_push_init_ctx(call); - final_data = ndr_push_init_ctx(call); + final_param = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); + final_data = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); if ((final_param == NULL) || (final_data == NULL)) return NT_STATUS_NO_MEMORY; diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c index 256f20ed54..db4136a853 100644 --- a/source4/rpc_server/dcerpc_server.c +++ b/source4/rpc_server/dcerpc_server.c @@ -884,7 +884,7 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call) } /* form the reply NDR */ - push = ndr_push_init_ctx(call); + push = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); NT_STATUS_HAVE_NO_MEMORY(push); /* carry over the pointer count to the reply in case we are diff --git a/source4/rpc_server/dcesrv_auth.c b/source4/rpc_server/dcesrv_auth.c index 319dc0788a..b7c0e2a833 100644 --- a/source4/rpc_server/dcesrv_auth.c +++ b/source4/rpc_server/dcesrv_auth.c @@ -406,7 +406,7 @@ bool dcesrv_auth_response(struct dcesrv_call_state *call, return NT_STATUS_IS_OK(status); } - ndr = ndr_push_init_ctx(call); + ndr = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); if (!ndr) { return false; } diff --git a/source4/torture/rap/rap.c b/source4/torture/rap/rap.c index d39a83034d..8e630b6781 100644 --- a/source4/torture/rap/rap.c +++ b/source4/torture/rap/rap.c @@ -87,10 +87,10 @@ static struct rap_call *new_rap_cli_call(TALLOC_CTX *mem_ctx, uint16_t callno) call->paramdesc = NULL; call->datadesc = NULL; - call->ndr_push_param = ndr_push_init_ctx(mem_ctx); + call->ndr_push_param = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); call->ndr_push_param->flags = RAPNDR_FLAGS; - call->ndr_push_data = ndr_push_init_ctx(mem_ctx); + call->ndr_push_data = ndr_push_init_ctx(mem_ctx, lp_iconv_convenience(global_loadparm)); call->ndr_push_data->flags = RAPNDR_FLAGS; return call; @@ -195,7 +195,7 @@ static NTSTATUS rap_cli_do_call(struct smbcli_tree *tree, struct rap_call *call) struct ndr_push *params; struct smb_trans2 trans; - params = ndr_push_init_ctx(call); + params = ndr_push_init_ctx(call, lp_iconv_convenience(global_loadparm)); if (params == NULL) return NT_STATUS_NO_MEMORY; -- cgit