[SCM] Samba Shared Repository - branch v3-4-test updated - release-4-0-0alpha7-472-g9575c97

Günther Deschner gd at samba.org
Wed Mar 18 09:36:28 GMT 2009


The branch, v3-4-test has been updated
       via  9575c97439c0e691f87a6cb094bdc5c9d464c3ce (commit)
       via  b60698bfbe5a3656c89d600453b198c003220227 (commit)
      from  38a225667ee7e59d4fcf090255a077c0660130ea (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test


- Log -----------------------------------------------------------------
commit 9575c97439c0e691f87a6cb094bdc5c9d464c3ce
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 18 03:00:37 2009 +0100

    s4-smbtorture: fix spoolss_EnumPrinterKey callers in RPC-SPOOLSS-WIN test.
    
    Kai, please check.
    
    Guenther
    (cherry picked from commit 342b436691a99fc6c4fb6606e7148e5c7ddd56c1)

commit b60698bfbe5a3656c89d600453b198c003220227
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 18 03:11:37 2009 +0100

    spoolss: fix ndr_push_spoolss_EnumPrinterDataEx.
    
    Guenther
    (cherry picked from commit 048013ddaa8b5c65ae6db0d8dbfd1e7082f75fc5)

-----------------------------------------------------------------------

Summary of changes:
 librpc/ndr/ndr_spoolss_buf.c      |    1 +
 source4/torture/rpc/spoolss_win.c |   35 ++++++++++++-----------------------
 2 files changed, 13 insertions(+), 23 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c
index 16a9b1b..97624d3 100644
--- a/librpc/ndr/ndr_spoolss_buf.c
+++ b/librpc/ndr/ndr_spoolss_buf.c
@@ -458,6 +458,7 @@ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int f
 		_r.out.count	= r->out.count;
 		_r.out.needed	= r->out.needed;
 		_r.out.result	= r->out.result;
+		_r.out.info 	= data_blob(NULL, 0);
 		if (r->in.offered >= *r->out.needed) {
 			struct __spoolss_EnumPrinterDataEx __r;
 			_ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
diff --git a/source4/torture/rpc/spoolss_win.c b/source4/torture/rpc/spoolss_win.c
index 5624e68..c50cbfb 100644
--- a/source4/torture/rpc/spoolss_win.c
+++ b/source4/torture/rpc/spoolss_win.c
@@ -33,7 +33,7 @@ struct test_spoolss_win_context {
 	union spoolss_PrinterInfo *current_info;
 
 	/* EnumPrinterKeys */
-	char *printer_keys;
+	const char **printer_keys;
 };
 
 /* This is a convenience function for all OpenPrinterEx calls */
@@ -389,9 +389,7 @@ static bool test_EnumPrinterKey(struct torture_context *tctx,
 
 	torture_assert_werr_ok(tctx, epk.out.result, "EnumPrinterKey failed");
 
-	convert_string_talloc_convenience(ctx, lp_iconv_convenience(tctx->lp_ctx), CH_UTF16,
-			CH_UNIX, epk.out.key_buffer, *epk.out.needed,
-			(void**)&ctx->printer_keys, NULL, false);
+	ctx->printer_keys = key_buffer;
 
 	return true;
 }
@@ -458,7 +456,7 @@ static bool test_WinXP(struct torture_context *tctx, struct dcerpc_pipe *p)
 	 * code, the unused_handle structures are used for that. */
 	struct policy_handle unused_handle1, unused_handle2;
 	char *server_name;
-	char *key_pointer;
+	uint32_t i;
 
 	ntvfs_init(tctx->lp_ctx);
 
@@ -533,24 +531,15 @@ static bool test_WinXP(struct torture_context *tctx, struct dcerpc_pipe *p)
 	ret &= test_EnumForms(tctx, p, &handle03, 0);
 
 	ret &= test_EnumPrinterKey(tctx, p, &handle03, "", ctx);
-	key_pointer = ctx->printer_keys;
-	while(*key_pointer != '\0') {
-		char *end_pointer;
-		char *key_name;
-
-		for(end_pointer = key_pointer; *end_pointer != '\0';
-				++end_pointer) {
-			/* Do nothing, just move the pointer */
-		}
-		key_name = talloc_strndup(tctx, key_pointer,
-				end_pointer - key_pointer);
-
-		ret &= test_EnumPrinterKey(tctx, p, &handle03, key_name,
-				tmp_ctx);
-		ret &= test_EnumPrinterDataEx(tctx, p, &handle03, key_name, 0,
-				WERR_OK);
-
-		key_pointer = ++end_pointer;
+
+	for (i=0; ctx->printer_keys[i] != NULL; i++) {
+
+		ret &= test_EnumPrinterKey(tctx, p, &handle03,
+					   ctx->printer_keys[i],
+					   tmp_ctx);
+		ret &= test_EnumPrinterDataEx(tctx, p, &handle03,
+					      ctx->printer_keys[i], 0,
+					      WERR_OK);
 	}
 
 	ret &= test_EnumPrinterDataEx(tctx, p, &handle03, "", 0,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list