summaryrefslogtreecommitdiff
path: root/source3/rpc_client
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2010-03-04 15:46:28 +0100
committerKarolin Seeger <kseeger@samba.org>2010-05-06 14:08:32 +0200
commite6a23fb6536e6fe1cdc49929c1d524a26f84bd50 (patch)
tree0df3a69e5f114bfc005efb6965962c168f1c0c43 /source3/rpc_client
parent2fe7fe26208e95efd40f9b2e8c2068f19bebce88 (diff)
downloadsamba-e6a23fb6536e6fe1cdc49929c1d524a26f84bd50.tar.gz
s3-rpcclient: fix rpcclient after spoolss_GetPrinterData{Ex} IDL change.
Guenther (cherry picked from commit 345eba78f7fc72f067cd3d95a7698081e09be85f)
Diffstat (limited to 'source3/rpc_client')
-rw-r--r--source3/rpc_client/cli_spoolss.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c
index bc4a4e78ed5..1919da9af3f 100644
--- a/source3/rpc_client/cli_spoolss.c
+++ b/source3/rpc_client/cli_spoolss.c
@@ -715,34 +715,44 @@ WERROR rpccli_spoolss_getprinterdata(struct rpc_pipe_client *cli,
const char *value_name,
uint32_t offered,
enum winreg_Type *type,
- union spoolss_PrinterData *data)
+ uint32_t *needed_p,
+ uint8_t **data_p)
{
NTSTATUS status;
WERROR werror;
uint32_t needed;
+ uint8_t *data;
+
+ data = talloc_zero_array(mem_ctx, uint8_t, offered);
+ W_ERROR_HAVE_NO_MEMORY(data);
status = rpccli_spoolss_GetPrinterData(cli, mem_ctx,
handle,
value_name,
- offered,
type,
data,
+ offered,
&needed,
&werror);
if (W_ERROR_EQUAL(werror, WERR_MORE_DATA)) {
offered = needed;
+ data = talloc_zero_array(mem_ctx, uint8_t, offered);
+ W_ERROR_HAVE_NO_MEMORY(data);
status = rpccli_spoolss_GetPrinterData(cli, mem_ctx,
handle,
value_name,
- offered,
type,
data,
+ offered,
&needed,
&werror);
}
+ *data_p = data;
+ *needed_p = needed;
+
return werror;
}