diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-11-15 20:56:18 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-11-15 20:56:18 +0000 |
commit | 5bd51a1d5d88459eca341d252f156fcf32bdc222 (patch) | |
tree | 9284956eb56bbbc151d18f4f917d8621ce80e3cc | |
parent | c24f56e71c2d15ba0e41146abf4b0387a2461bac (diff) | |
download | samba-5bd51a1d5d88459eca341d252f156fcf32bdc222.tar.gz samba-5bd51a1d5d88459eca341d252f156fcf32bdc222.tar.bz2 samba-5bd51a1d5d88459eca341d252f156fcf32bdc222.zip |
the returned policy handle in spoolss_OpenPrinterEx() is pass by
reference
(tim, my apoligies if this conflicts with an uncomitted fix from you)
(This used to be commit fa0872e66359603a52813af13b45fdaeca98f5d0)
-rw-r--r-- | source4/librpc/idl/spoolss.idl | 2 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_spoolss.c | 11 | ||||
-rw-r--r-- | source4/torture/rpc/spoolss.c | 3 |
3 files changed, 5 insertions, 11 deletions
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl index 8f12b266cf..0c7b2ae548 100644 --- a/source4/librpc/idl/spoolss.idl +++ b/source4/librpc/idl/spoolss.idl @@ -384,7 +384,7 @@ [in] uint32 access_required, [in] uint32 level, [in,switch_is(level)] spoolss_UserLevel userlevel, - [out] policy_handle *handle + [out,ref] policy_handle *handle ); /******************/ diff --git a/source4/librpc/ndr/ndr_spoolss.c b/source4/librpc/ndr/ndr_spoolss.c index d346ebd9b2..be3082d69e 100644 --- a/source4/librpc/ndr/ndr_spoolss.c +++ b/source4/librpc/ndr/ndr_spoolss.c @@ -1152,16 +1152,7 @@ NTSTATUS ndr_pull_spoolss_44(struct ndr_pull *ndr, struct spoolss_44 *r) NTSTATUS ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, struct spoolss_OpenPrinterEx *r) { - uint32 _ptr_handle; - NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_handle)); - if (_ptr_handle) { - NDR_ALLOC(ndr, r->out.handle); - } else { - r->out.handle = NULL; - } - if (r->out.handle) { - NDR_CHECK(ndr_pull_policy_handle(ndr, r->out.handle)); - } + NDR_CHECK(ndr_pull_policy_handle(ndr, r->out.handle)); NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); return NT_STATUS_OK; diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index 83a7778a59..7f4809109a 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -25,6 +25,7 @@ static BOOL test_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) { struct spoolss_OpenPrinterEx r; struct spoolss_UserLevel1 userlevel1; + struct policy_handle handle; NTSTATUS status; r.in.printername = "p"; @@ -33,6 +34,8 @@ static BOOL test_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) r.in.devmode_ctr.devmode = NULL; r.in.access_required = 0x12345678; r.in.level = 1; + r.out.handle = &handle; + userlevel1.size = 1234; userlevel1.client = "hello"; userlevel1.user = "spottyfoot!"; |