summaryrefslogtreecommitdiff
path: root/source4/libcli
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libcli')
-rw-r--r--source4/libcli/ndr/ndr.c1
-rw-r--r--source4/libcli/ndr/ndr_basic.c4
-rw-r--r--source4/libcli/raw/rawdcerpc.c3
-rw-r--r--source4/libcli/rpc/dcerpc.c6
4 files changed, 11 insertions, 3 deletions
diff --git a/source4/libcli/ndr/ndr.c b/source4/libcli/ndr/ndr.c
index d9a5ff7735..eca5799d8e 100644
--- a/source4/libcli/ndr/ndr.c
+++ b/source4/libcli/ndr/ndr.c
@@ -39,6 +39,7 @@ struct ndr_pull *ndr_pull_init_blob(DATA_BLOB *blob, TALLOC_CTX *mem_ctx)
ndr = talloc(mem_ctx, sizeof(*ndr));
if (!ndr) return NULL;
+ ndr->flags = 0;
ndr->data = blob->data;
ndr->data_size = blob->length;
ndr->offset = 0;
diff --git a/source4/libcli/ndr/ndr_basic.c b/source4/libcli/ndr/ndr_basic.c
index 21326c2a62..138e1f1a6c 100644
--- a/source4/libcli/ndr/ndr_basic.c
+++ b/source4/libcli/ndr/ndr_basic.c
@@ -120,8 +120,8 @@ NTSTATUS ndr_pull_guid(struct ndr_pull *ndr, GUID *guid)
#define NDR_PUSH_NEED_BYTES(ndr, n) NDR_CHECK(ndr_push_expand(ndr, ndr->offset+(n)))
#define NDR_PUSH_ALIGN(ndr, n) do { \
- ndr->offset = (ndr->offset + (n-1)) & ~(n-1); \
- NDR_CHECK(ndr_push_expand(ndr, ndr->offset)); \
+ uint32 _pad = (ndr->offset & (n-1)); \
+ while (_pad--) NDR_CHECK(ndr_push_u8(ndr, 0)); \
} while(0)
/*
diff --git a/source4/libcli/raw/rawdcerpc.c b/source4/libcli/raw/rawdcerpc.c
index a253e0eb65..0541200015 100644
--- a/source4/libcli/raw/rawdcerpc.c
+++ b/source4/libcli/raw/rawdcerpc.c
@@ -105,7 +105,10 @@ struct cli_request *dcerpc_raw_send(struct dcerpc_pipe *p, DATA_BLOB *blob)
trans.in.max_param = 0;
trans.in.max_data = 0x8000;
+ trans.in.max_setup = 0;
trans.in.setup_count = 2;
+ trans.in.flags = 0;
+ trans.in.timeout = 0;
trans.in.setup = setup;
trans.in.trans_name = "\\PIPE\\";
diff --git a/source4/libcli/rpc/dcerpc.c b/source4/libcli/rpc/dcerpc.c
index 89f2c6d5b1..9e6c05e7ae 100644
--- a/source4/libcli/rpc/dcerpc.c
+++ b/source4/libcli/rpc/dcerpc.c
@@ -38,6 +38,7 @@ struct dcerpc_pipe *dcerpc_pipe_init(struct cli_tree *tree)
return NULL;
}
+ p->reference_count = 0;
p->mem_ctx = mem_ctx;
p->tree = tree;
p->tree->reference_count++;
@@ -746,7 +747,10 @@ NTSTATUS dcerpc_request(struct dcerpc_pipe *p,
/*
- a useful helper function for synchronous rpc requests
+ a useful helper function for synchronous rpc requests
+
+ this can be used when you have ndr push/pull functions in the
+ standard format
*/
NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
uint32 opnum,