svn commit: samba r26432 - in branches/SAMBA_4_0: .
source/lib/messaging source/lib/samba3 source/libcli/raw
source/librpc/ndr source/librpc/rpc source/librpc/tools
source/ntvfs/ipc source/rpc_server source/torture/ndr
source/torture/rap source/torture/rpc source/utils
jelmer at samba.org
jelmer at samba.org
Thu Dec 13 22:46:28 GMT 2007
Author: jelmer
Date: 2007-12-13 22:46:27 +0000 (Thu, 13 Dec 2007)
New Revision: 26432
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26432
Log:
Require ndr_pull users to specify iconv_convenience.
Modified:
branches/SAMBA_4_0/
branches/SAMBA_4_0/source/lib/messaging/messaging.c
branches/SAMBA_4_0/source/lib/samba3/share_info.c
branches/SAMBA_4_0/source/libcli/raw/rawacl.c
branches/SAMBA_4_0/source/librpc/ndr/ndr.c
branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c
branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c
branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c
branches/SAMBA_4_0/source/librpc/tools/ndrdump.c
branches/SAMBA_4_0/source/ntvfs/ipc/ipc_rap.c
branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c
branches/SAMBA_4_0/source/rpc_server/dcesrv_auth.c
branches/SAMBA_4_0/source/torture/ndr/ndr.c
branches/SAMBA_4_0/source/torture/rap/rap.c
branches/SAMBA_4_0/source/torture/rpc/eventlog.c
branches/SAMBA_4_0/source/utils/getntacl.c
Changeset:
Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...
Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c
===================================================================
--- branches/SAMBA_4_0/source/lib/messaging/messaging.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/lib/messaging/messaging.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -798,7 +798,7 @@
m->from = src;
- m->ndr = ndr_pull_init_blob(packet, m);
+ m->ndr = ndr_pull_init_blob(packet, m, lp_iconv_convenience(global_loadparm));
if (m->ndr == NULL) goto failed;
m->ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
Modified: branches/SAMBA_4_0/source/lib/samba3/share_info.c
===================================================================
--- branches/SAMBA_4_0/source/lib/samba3/share_info.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/lib/samba3/share_info.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -76,7 +76,7 @@
blob.data = (uint8_t *)vbuf.dptr;
blob.length = vbuf.dsize;
- pull = ndr_pull_init_blob(&blob, ctx);
+ pull = ndr_pull_init_blob(&blob, ctx, lp_iconv_convenience(global_loadparm));
ndr_pull_security_descriptor(pull, NDR_SCALARS|NDR_BUFFERS, &share->secdesc);
Modified: branches/SAMBA_4_0/source/libcli/raw/rawacl.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/rawacl.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/libcli/raw/rawacl.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -77,7 +77,8 @@
nt.out.data.length = IVAL(nt.out.params.data, 0);
- ndr = ndr_pull_init_blob(&nt.out.data, mem_ctx);
+ ndr = ndr_pull_init_blob(&nt.out.data, mem_ctx,
+ lp_iconv_convenience(global_loadparm));
if (!ndr) {
return NT_STATUS_INVALID_PARAMETER;
}
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -57,7 +57,7 @@
/*
initialise a ndr parse structure from a data blob
*/
-_PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
+_PUBLIC_ struct ndr_pull *ndr_pull_init_blob(const DATA_BLOB *blob, TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *iconv_convenience)
{
struct ndr_pull *ndr;
@@ -67,7 +67,7 @@
ndr->data = blob->data;
ndr->data_size = blob->length;
- ndr->iconv_convenience = talloc_reference(ndr, lp_iconv_convenience(global_loadparm));
+ ndr->iconv_convenience = talloc_reference(ndr, iconv_convenience);
return ndr;
}
@@ -694,7 +694,7 @@
ndr_pull_flags_fn_t fn)
{
struct ndr_pull *ndr;
- ndr = ndr_pull_init_blob(blob, mem_ctx);
+ ndr = ndr_pull_init_blob(blob, mem_ctx, lp_iconv_convenience(global_loadparm));
NDR_ERR_HAVE_NO_MEMORY(ndr);
NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
return NDR_ERR_SUCCESS;
@@ -707,7 +707,7 @@
ndr_pull_flags_fn_t fn)
{
struct ndr_pull *ndr;
- ndr = ndr_pull_init_blob(blob, mem_ctx);
+ ndr = ndr_pull_init_blob(blob, mem_ctx, lp_iconv_convenience(global_loadparm));
NDR_ERR_HAVE_NO_MEMORY(ndr);
NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
if (ndr->offset < ndr->data_size) {
@@ -725,7 +725,7 @@
uint32_t level, ndr_pull_flags_fn_t fn)
{
struct ndr_pull *ndr;
- ndr = ndr_pull_init_blob(blob, mem_ctx);
+ ndr = ndr_pull_init_blob(blob, mem_ctx, lp_iconv_convenience(global_loadparm));
NDR_ERR_HAVE_NO_MEMORY(ndr);
NDR_CHECK(ndr_pull_set_switch_value(ndr, p, level));
NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
@@ -740,7 +740,7 @@
uint32_t level, ndr_pull_flags_fn_t fn)
{
struct ndr_pull *ndr;
- ndr = ndr_pull_init_blob(blob, mem_ctx);
+ ndr = ndr_pull_init_blob(blob, mem_ctx, lp_iconv_convenience(global_loadparm));
NDR_ERR_HAVE_NO_MEMORY(ndr);
NDR_CHECK(ndr_pull_set_switch_value(ndr, p, level));
NDR_CHECK(fn(ndr, NDR_SCALARS|NDR_BUFFERS, p));
Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/librpc/ndr/ndr_spoolss_buf.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -121,7 +121,7 @@
r->out.count = _r.out.count;\
r->out.result = _r.out.result;\
if (_r.out.info) {\
- struct ndr_pull *_ndr_info = ndr_pull_init_blob(_r.out.info, ndr);\
+ struct ndr_pull *_ndr_info = ndr_pull_init_blob(_r.out.info, ndr, ndr->iconv_convenience);\
NDR_ERR_HAVE_NO_MEMORY(_ndr_info);\
_ndr_info->flags= ndr->flags;\
if (r->in.offered != _ndr_info->data_size) {\
@@ -470,7 +470,7 @@
}
if (_r.out.data.length > 0 && r->out.needed <= _r.out.data.length) {
struct __spoolss_GetPrinterData __r;
- struct ndr_pull *_ndr_data = ndr_pull_init_blob(&_r.out.data, ndr);
+ struct ndr_pull *_ndr_data = ndr_pull_init_blob(&_r.out.data, ndr, ndr->iconv_convenience);
NDR_ERR_HAVE_NO_MEMORY(_ndr_data);
_ndr_data->flags= ndr->flags;
__r.in.type = r->out.type;
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -164,13 +164,13 @@
}
-/*
+/**
setup for a ndr pull, also setting up any flags from the binding string
*/
static struct ndr_pull *ndr_pull_init_flags(struct dcerpc_connection *c,
DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
{
- struct ndr_pull *ndr = ndr_pull_init_blob(blob, mem_ctx);
+ struct ndr_pull *ndr = ndr_pull_init_blob(blob, mem_ctx, lp_iconv_convenience(global_loadparm));
if (ndr == NULL) return ndr;
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc_util.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -439,7 +439,7 @@
NTSTATUS dcerpc_floor_get_lhs_data(struct epm_floor *epm_floor, struct ndr_syntax_id *syntax)
{
TALLOC_CTX *mem_ctx = talloc_init("floor_get_lhs_data");
- struct ndr_pull *ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx);
+ struct ndr_pull *ndr = ndr_pull_init_blob(&epm_floor->lhs.lhs_data, mem_ctx, lp_iconv_convenience(global_loadparm));
enum ndr_err_code ndr_err;
uint16_t if_version=0;
Modified: branches/SAMBA_4_0/source/librpc/tools/ndrdump.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/tools/ndrdump.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/librpc/tools/ndrdump.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -304,7 +304,7 @@
blob.data = data;
blob.length = size;
- ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
+ ndr_pull = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
ndr_err = f->ndr_pull(ndr_pull, NDR_IN, st);
@@ -341,7 +341,7 @@
blob.data = data;
blob.length = size;
- ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
+ ndr_pull = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
ndr_err = f->ndr_pull(ndr_pull, flags, st);
@@ -397,7 +397,7 @@
ndrdump_data(v_blob.data, v_blob.length, dumpdata);
}
- ndr_v_pull = ndr_pull_init_blob(&v_blob, mem_ctx);
+ ndr_v_pull = ndr_pull_init_blob(&v_blob, mem_ctx, lp_iconv_convenience(cmdline_lp_ctx));
ndr_v_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
ndr_err = f->ndr_pull(ndr_v_pull, flags, v_st);
Modified: branches/SAMBA_4_0/source/ntvfs/ipc/ipc_rap.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/ipc/ipc_rap.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/ntvfs/ipc/ipc_rap.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -116,10 +116,10 @@
call->mem_ctx = mem_ctx;
- call->ndr_pull_param = ndr_pull_init_blob(&trans->in.params, mem_ctx);
+ call->ndr_pull_param = ndr_pull_init_blob(&trans->in.params, mem_ctx, lp_iconv_convenience(global_loadparm));
call->ndr_pull_param->flags = RAPNDR_FLAGS;
- call->ndr_pull_data = ndr_pull_init_blob(&trans->in.data, mem_ctx);
+ call->ndr_pull_data = ndr_pull_init_blob(&trans->in.data, mem_ctx, lp_iconv_convenience(global_loadparm));
call->ndr_pull_data->flags = RAPNDR_FLAGS;
call->heap = talloc(mem_ctx, struct rap_string_heap);
Modified: branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/rpc_server/dcerpc_server.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -821,7 +821,8 @@
return dcesrv_fault(call, DCERPC_FAULT_UNK_IF);
}
- pull = ndr_pull_init_blob(&call->pkt.u.request.stub_and_verifier, call);
+ pull = ndr_pull_init_blob(&call->pkt.u.request.stub_and_verifier, call,
+ lp_iconv_convenience(global_loadparm));
NT_STATUS_HAVE_NO_MEMORY(pull);
pull->flags |= LIBNDR_FLAG_REF_ALLOC;
@@ -1049,7 +1050,7 @@
blob = dce_conn->partial_input;
blob.length = dcerpc_get_frag_length(&blob);
- ndr = ndr_pull_init_blob(&blob, call);
+ ndr = ndr_pull_init_blob(&blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx));
if (!ndr) {
talloc_free(dce_conn->partial_input.data);
talloc_free(call);
Modified: branches/SAMBA_4_0/source/rpc_server/dcesrv_auth.c
===================================================================
--- branches/SAMBA_4_0/source/rpc_server/dcesrv_auth.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/rpc_server/dcesrv_auth.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -326,7 +326,7 @@
pkt->u.request.stub_and_verifier.length -= auth_blob.length;
/* pull the auth structure */
- ndr = ndr_pull_init_blob(&auth_blob, call);
+ ndr = ndr_pull_init_blob(&auth_blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx));
if (!ndr) {
return false;
}
Modified: branches/SAMBA_4_0/source/torture/ndr/ndr.c
===================================================================
--- branches/SAMBA_4_0/source/torture/ndr/ndr.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/torture/ndr/ndr.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -23,6 +23,7 @@
#include "torture/ndr/proto.h"
#include "torture/ui.h"
#include "util/dlinklist.h"
+#include "param/param.h"
struct ndr_pull_test_data {
DATA_BLOB data;
@@ -38,7 +39,7 @@
bool (*check_fn) (struct torture_context *ctx, void *data) = test->fn;
const struct ndr_pull_test_data *data = (const struct ndr_pull_test_data *)test->data;
void *ds = talloc_zero_size(tctx, data->struct_size);
- struct ndr_pull *ndr = ndr_pull_init_blob(&(data->data), tctx);
+ struct ndr_pull *ndr = ndr_pull_init_blob(&(data->data), tctx, lp_iconv_convenience(tctx->lp_ctx));
ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
@@ -97,7 +98,7 @@
/* Simple test */
blob = strhex_to_data_blob("0000");
- ndr = ndr_pull_init_blob(&blob, mem_ctx);
+ ndr = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
torture_assert_ndr_success(tctx, ndr_check_string_terminator(ndr, 1, 2),
"simple check_string_terminator test failed");
@@ -115,7 +116,7 @@
talloc_free(ndr);
blob = strhex_to_data_blob("11220000");
- ndr = ndr_pull_init_blob(&blob, mem_ctx);
+ ndr = ndr_pull_init_blob(&blob, mem_ctx, lp_iconv_convenience(tctx->lp_ctx));
torture_assert_ndr_success(tctx,
ndr_check_string_terminator(ndr, 4, 1),
Modified: branches/SAMBA_4_0/source/torture/rap/rap.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rap/rap.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/torture/rap/rap.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -229,10 +229,12 @@
if (!NT_STATUS_IS_OK(result))
return result;
- call->ndr_pull_param = ndr_pull_init_blob(&trans.out.params, call);
+ call->ndr_pull_param = ndr_pull_init_blob(&trans.out.params, call,
+ lp_iconv_convenience(global_loadparm));
call->ndr_pull_param->flags = RAPNDR_FLAGS;
- call->ndr_pull_data = ndr_pull_init_blob(&trans.out.data, call);
+ call->ndr_pull_data = ndr_pull_init_blob(&trans.out.data, call,
+ lp_iconv_convenience(global_loadparm));
call->ndr_pull_data->flags = RAPNDR_FLAGS;
return result;
Modified: branches/SAMBA_4_0/source/torture/rpc/eventlog.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/eventlog.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/torture/rpc/eventlog.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -25,6 +25,7 @@
#include "librpc/gen_ndr/ndr_eventlog_c.h"
#include "librpc/gen_ndr/ndr_lsa.h"
#include "torture/rpc/rpc.h"
+#include "param/param.h"
static void init_lsa_String(struct lsa_String *name, const char *s)
{
@@ -137,7 +138,7 @@
blob.length = *r.out.sent_size;
blob.data = talloc_steal(tctx, r.out.data);
- ndr = ndr_pull_init_blob(&blob, tctx);
+ ndr = ndr_pull_init_blob(&blob, tctx, lp_iconv_convenience(tctx->lp_ctx));
ndr_err = ndr_pull_eventlog_Record(
ndr, NDR_SCALARS|NDR_BUFFERS, &rec);
Modified: branches/SAMBA_4_0/source/utils/getntacl.c
===================================================================
--- branches/SAMBA_4_0/source/utils/getntacl.c 2007-12-13 22:46:23 UTC (rev 26431)
+++ branches/SAMBA_4_0/source/utils/getntacl.c 2007-12-13 22:46:27 UTC (rev 26432)
@@ -23,6 +23,7 @@
#include "system/filesys.h"
#include "librpc/gen_ndr/ndr_xattr.h"
#include "lib/util/wrap_xattr.h"
+#include "param/param.h"
static void ntacl_print_debug_helper(struct ndr_print *ndr, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
@@ -71,7 +72,7 @@
}
blob.length = size;
- ndr = ndr_pull_init_blob(&blob, NULL);
+ ndr = ndr_pull_init_blob(&blob, NULL, lp_iconv_convenience(global_loadparm));
ndr_err = ndr_pull_xattr_NTACL(ndr, NDR_SCALARS|NDR_BUFFERS, *ntacl);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
More information about the samba-cvs
mailing list