From 846aa18648f3b34ab5cbc4dc4ba334bbedeab2f4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Tue, 24 Nov 2009 15:22:04 +0100 Subject: [PATCH] s3-spoolss: fixes for _spoolss_EnumPrinterKey client and server. Thanks Metze for review! Guenther --- source3/rpc_client/cli_spoolss.c | 4 ++-- source3/rpc_server/srv_spoolss_nt.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c index 2dba1030691..6d6d5dfcfab 100644 --- a/source3/rpc_client/cli_spoolss.c +++ b/source3/rpc_client/cli_spoolss.c @@ -815,7 +815,7 @@ WERROR rpccli_spoolss_enumprinterkey(struct rpc_pipe_client *cli, *key_buffer = NULL; if (offered) { - buffer = talloc_array(mem_ctx, uint16_t, offered); + buffer = talloc_array(mem_ctx, uint16_t, offered/2); W_ERROR_HAVE_NO_MEMORY(buffer); } @@ -829,7 +829,7 @@ WERROR rpccli_spoolss_enumprinterkey(struct rpc_pipe_client *cli, if (W_ERROR_EQUAL(werror, WERR_MORE_DATA)) { offered = needed; - buffer = talloc_realloc(mem_ctx, buffer, uint16_t, needed); + buffer = talloc_realloc(mem_ctx, buffer, uint16_t, needed/2); W_ERROR_HAVE_NO_MEMORY(buffer); status = rpccli_spoolss_EnumPrinterKey(cli, mem_ctx, handle, diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 072090b14a4..703dca15e8d 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -9203,7 +9203,7 @@ WERROR _spoolss_EnumPrinterKey(pipes_struct *p, goto done; } - if (r->in.offered == blob.length) { + if (r->in.offered >= blob.length) { memcpy(r->out.key_buffer, blob.data, blob.length); } -- 2.11.4.GIT