From: Günther Deschner Date: Thu, 26 Nov 2009 18:01:54 +0000 (+0100) Subject: s3-spoolss: simplify _spoolss_EnumPrinterKey a little more. X-Git-Tag: samba-4.0.0alpha9~96 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e512ccb5b677fa7f285829ec645fc067837c0e11;p=thirdparty%2Fsamba.git s3-spoolss: simplify _spoolss_EnumPrinterKey a little more. Guenther --- diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index c704418334c..8d7973d13e5 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -9125,10 +9125,6 @@ WERROR _spoolss_EnumPrinterKey(pipes_struct *p, goto done; } - /* two byte termination (a multisz) */ - - *r->out.needed = 2; - array = talloc_zero_array(r->out.key_buffer, const char *, num_keys + 1); if (!array) { result = WERR_NOMEM; @@ -9145,23 +9141,19 @@ WERROR _spoolss_EnumPrinterKey(pipes_struct *p, result = WERR_NOMEM; goto done; } - - *r->out.needed += strlen_m_term(keynames[i]) * 2; - } - - if (r->in.offered < *r->out.needed) { - result = WERR_MORE_DATA; - goto done; } - result = WERR_OK; - if (!push_reg_multi_sz(p->mem_ctx, &blob, array)) { result = WERR_NOMEM; goto done; } - if (r->in.offered >= blob.length) { + *r->out.needed = blob.length; + + if (r->in.offered < *r->out.needed) { + result = WERR_MORE_DATA; + } else { + result = WERR_OK; memcpy(r->out.key_buffer, blob.data, blob.length); }