svn commit: samba r6871 - in branches/tmp/pidl2/source: librpc/rpc
rpc_server utils
jelmer at samba.org
jelmer at samba.org
Wed May 18 00:31:24 GMT 2005
Author: jelmer
Date: 2005-05-18 00:31:22 +0000 (Wed, 18 May 2005)
New Revision: 6871
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6871
Log:
Some more allocation bugfixes for pidl2; ref variables are only allocated
if LIBNDR_FLAG_REF_ALLOC is set; doesn't matter whether they're out or in
variables. The previous version always allocated [in,ref] pointers
and allocated [out,ref] pointers only when LIBNDR_FLAG_REF_ALLOC was set.
This commit adds the LIBNDR_FLAG_REF_ALLOC flag wherever we call
ndr_pull() for requests.
Modified:
branches/tmp/pidl2/source/librpc/rpc/dcerpc.c
branches/tmp/pidl2/source/rpc_server/dcerpc_server.c
branches/tmp/pidl2/source/utils/ndrdump.c
Changeset:
Modified: branches/tmp/pidl2/source/librpc/rpc/dcerpc.c
===================================================================
--- branches/tmp/pidl2/source/librpc/rpc/dcerpc.c 2005-05-17 23:17:12 UTC (rev 6870)
+++ branches/tmp/pidl2/source/librpc/rpc/dcerpc.c 2005-05-18 00:31:22 UTC (rev 6871)
@@ -1025,6 +1025,7 @@
if (!pull) {
return NT_STATUS_NO_MEMORY;
}
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
status = ndr_pull(pull, NDR_IN, st);
if (!NT_STATUS_IS_OK(status)) {
Modified: branches/tmp/pidl2/source/rpc_server/dcerpc_server.c
===================================================================
--- branches/tmp/pidl2/source/rpc_server/dcerpc_server.c 2005-05-17 23:17:12 UTC (rev 6870)
+++ branches/tmp/pidl2/source/rpc_server/dcerpc_server.c 2005-05-18 00:31:22 UTC (rev 6871)
@@ -756,6 +756,8 @@
pull = ndr_pull_init_blob(&call->pkt.u.request.stub_and_verifier, call);
NT_STATUS_HAVE_NO_MEMORY(pull);
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+
call->context = context;
call->event_ctx = context->conn->srv_conn->event.ctx;
call->ndr_pull = pull;
Modified: branches/tmp/pidl2/source/utils/ndrdump.c
===================================================================
--- branches/tmp/pidl2/source/utils/ndrdump.c 2005-05-17 23:17:12 UTC (rev 6870)
+++ branches/tmp/pidl2/source/utils/ndrdump.c 2005-05-18 00:31:22 UTC (rev 6871)
@@ -200,6 +200,7 @@
blob.length = size;
ndr = ndr_pull_init_blob(&blob, mem_ctx);
+ ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
status = f->ndr_pull(ndr, NDR_IN, st);
@@ -230,11 +231,8 @@
blob.length = size;
ndr = ndr_pull_init_blob(&blob, mem_ctx);
+ ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
- if (flags == NDR_OUT) {
- ndr->flags |= LIBNDR_FLAG_REF_ALLOC;
- }
-
status = f->ndr_pull(ndr, flags, st);
printf("pull returned %s\n", nt_errstr(status));
More information about the samba-cvs
mailing list