[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Mon Jun 7 04:59:20 MDT 2010


The branch, master has been updated
       via  0604df5... s3-lsa: Fix static list of luids in our privileges implementation.
       via  5def19e... s4-smbtorture: test workstation auth as well in RPC-SPOOLSS-ACCESS.
      from  e206109... s4:ldb python bindings - implement comparison on Python LDB Message objects

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 0604df52e3b161e010ad4f1aba1a4bc7973c64c1
Author: Günther Deschner <gd at samba.org>
Date:   Mon Jun 7 12:55:43 2010 +0200

    s3-lsa: Fix static list of luids in our privileges implementation.
    
    The high/low order changed while moving to LSA defines. Found by torture test.
    
    Guenther

commit 5def19e4dc0b9f15fa30f7895a2b016c4e59abb0
Author: Günther Deschner <gd at samba.org>
Date:   Mon Jun 7 12:41:39 2010 +0200

    s4-smbtorture: test workstation auth as well in RPC-SPOOLSS-ACCESS.
    
    Guenther

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

Summary of changes:
 source3/lib/privileges_basic.c       |   18 ++++++++--------
 source4/torture/rpc/spoolss_access.c |   36 ++++++++++++++++++++++++++++++++-
 2 files changed, 43 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/privileges_basic.c b/source3/lib/privileges_basic.c
index d174c70..c970478 100644
--- a/source3/lib/privileges_basic.c
+++ b/source3/lib/privileges_basic.c
@@ -97,15 +97,15 @@ PRIVS privs[] = {
 	{SE_BATCH_LOGON,	"SeBatchLogonRight",		"Log on as a batch job",		   { 0x0, 0x0 }},
 	{SE_SERVICE_LOGON,	"SeServiceLogonRight",		"Log on as a service",			   { 0x0, 0x0 }},
 #endif
-	{SE_MACHINE_ACCOUNT,	"SeMachineAccountPrivilege",	"Add machines to domain",		   { 0x0, 0x0006 }},
-	{SE_TAKE_OWNERSHIP,     "SeTakeOwnershipPrivilege",     "Take ownership of files or other objects",{ 0x0, 0x0009 }},
-        {SE_BACKUP,             "SeBackupPrivilege",            "Back up files and directories",	   { 0x0, 0x0011 }},
-        {SE_RESTORE,            "SeRestorePrivilege",           "Restore files and directories",	   { 0x0, 0x0012 }},
-	{SE_REMOTE_SHUTDOWN,	"SeRemoteShutdownPrivilege",	"Force shutdown from a remote system",	   { 0x0, 0x0018 }},
-
-	{SE_PRINT_OPERATOR,	"SePrintOperatorPrivilege",	"Manage printers",			   { 0x0, 0x1001 }},
-	{SE_ADD_USERS,		"SeAddUsersPrivilege",		"Add users and groups to the domain",	   { 0x0, 0x1002 }},
-	{SE_DISK_OPERATOR,	"SeDiskOperatorPrivilege",	"Manage disk shares",			   { 0x0, 0x1003 }},
+	{SE_MACHINE_ACCOUNT,	"SeMachineAccountPrivilege",	"Add machines to domain",		   { 0x0006,	0x0 }},
+	{SE_TAKE_OWNERSHIP,     "SeTakeOwnershipPrivilege",     "Take ownership of files or other objects",{ 0x0009,	0x0 }},
+        {SE_BACKUP,             "SeBackupPrivilege",            "Back up files and directories",	   { 0x0011,	0x0 }},
+        {SE_RESTORE,            "SeRestorePrivilege",           "Restore files and directories",	   { 0x0012,	0x0 }},
+	{SE_REMOTE_SHUTDOWN,	"SeRemoteShutdownPrivilege",	"Force shutdown from a remote system",	   { 0x0018,	0x0 }},
+
+	{SE_PRINT_OPERATOR,	"SePrintOperatorPrivilege",	"Manage printers",			   { 0x1001,	0x0 }},
+	{SE_ADD_USERS,		"SeAddUsersPrivilege",		"Add users and groups to the domain",	   { 0x1002,	0x0 }},
+	{SE_DISK_OPERATOR,	"SeDiskOperatorPrivilege",	"Manage disk shares",			   { 0x1003,	0x0 }},
 
 	{SE_END, "", "", { 0x0, 0x0 }}
 };
diff --git a/source4/torture/rpc/spoolss_access.c b/source4/torture/rpc/spoolss_access.c
index 2bf0331..4123664 100644
--- a/source4/torture/rpc/spoolss_access.c
+++ b/source4/torture/rpc/spoolss_access.c
@@ -36,6 +36,7 @@
 #define TORTURE_USER_PRINTOPGROUP	"torture_user_550"
 #define TORTURE_USER_PRINTOPPRIV	"torture_user_priv"
 #define TORTURE_USER_SD			"torture_user_sd"
+#define TORTURE_WORKSTATION		"torture_workstation"
 
 struct torture_user {
 	const char *username;
@@ -414,6 +415,7 @@ static bool torture_rpc_spoolss_access_setup_common(struct torture_context *tctx
 	struct dcerpc_pipe *p;
 	const char *printername;
 	const char *binding = torture_setting_string(tctx, "binding", NULL);
+	struct dcerpc_pipe *spoolss_pipe;
 
 	testuser = torture_create_testuser_max_pwlen(tctx, t->user.username,
 						     torture_setting_string(tctx, "workgroup", NULL),
@@ -460,8 +462,6 @@ static bool torture_rpc_spoolss_access_setup_common(struct torture_context *tctx
 		talloc_free(lsa_pipe);
 	}
 
-	struct dcerpc_pipe *spoolss_pipe;
-
 	torture_assert_ntstatus_ok(tctx,
 		torture_rpc_connection(tctx, &spoolss_pipe, &ndr_table_spoolss),
 		"Error connecting to server");
@@ -701,10 +701,36 @@ static bool test_openprinter_admin(struct torture_context *tctx,
 	return ret;
 }
 
+static bool test_openprinter_wrap(struct torture_context *tctx,
+				  struct dcerpc_pipe *p)
+{
+	struct torture_access_context *t;
+	const char *printername;
+	bool ret = true;
+
+	t = talloc_zero(tctx, struct torture_access_context);
+
+	t->user.username = talloc_strdup(tctx, "dummy");
+	t->spoolss_pipe = p;
+
+	torture_assert(tctx,
+		test_EnumPrinters_findone(tctx, p, &printername),
+		"failed to enumerate printers");
+
+	t->printername = printername;
+
+	ret = test_openprinter(tctx, (void *)t);
+
+	talloc_free(t);
+
+	return true;
+}
+
 struct torture_suite *torture_rpc_spoolss_access(TALLOC_CTX *mem_ctx)
 {
 	struct torture_suite *suite = torture_suite_create(mem_ctx, "SPOOLSS-ACCESS");
 	struct torture_tcase *tcase;
+	struct torture_rpc_tcase *rpc_tcase;
 
 	tcase = torture_suite_add_tcase(suite, "normaluser");
 
@@ -750,5 +776,11 @@ struct torture_suite *torture_rpc_spoolss_access(TALLOC_CTX *mem_ctx)
 	torture_tcase_add_simple_test(tcase, "openprinter", test_openprinter);
 	torture_tcase_add_simple_test(tcase, "openprinter_admin", test_openprinter_admin);
 
+	rpc_tcase = torture_suite_add_machine_workstation_rpc_iface_tcase(suite, "workstation",
+									  &ndr_table_spoolss,
+									  TORTURE_WORKSTATION);
+
+	torture_rpc_tcase_add_test(rpc_tcase, "openprinter", test_openprinter_wrap);
+
 	return suite;
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list