[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Wed Mar 10 08:13:16 MST 2010


The branch, master has been updated
       via  c5ba525... s3-winreg: add some debug statements to _winreg_QueryValue().
       via  52ca26a... s4-smbtorture: do full winreg QueryValue test for values we created.
       via  420aac7... s4-smbtorture: check for non existing value under version key in RPC-WINREG.
      from  89c785c... s3: Fix a long-standing problem with recycled PIDs

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


- Log -----------------------------------------------------------------
commit c5ba525748fdab6b182e35673983719b7c235127
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 10 14:17:23 2010 +0100

    s3-winreg: add some debug statements to _winreg_QueryValue().
    
    Guenther

commit 52ca26a820ab0688800a88038b656c2def83aeb6
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 10 13:04:17 2010 +0100

    s4-smbtorture: do full winreg QueryValue test for values we created.
    
    Guenther

commit 420aac75385d8992bfa5145041604a5efbb126a5
Author: Günther Deschner <gd at samba.org>
Date:   Wed Mar 10 12:54:17 2010 +0100

    s4-smbtorture: check for non existing value under version key in RPC-WINREG.
    
    Guenther

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

Summary of changes:
 source3/rpc_server/srv_winreg_nt.c |    8 ++++++--
 source4/torture/rpc/winreg.c       |   29 +++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/srv_winreg_nt.c b/source3/rpc_server/srv_winreg_nt.c
index dcfe2b9..15c79be 100644
--- a/source3/rpc_server/srv_winreg_nt.c
+++ b/source3/rpc_server/srv_winreg_nt.c
@@ -236,8 +236,8 @@ WERROR _winreg_QueryValue(pipes_struct *p, struct winreg_QueryValue *r)
 
 	*r->out.data_length = *r->out.type = REG_NONE;
 
-	DEBUG(7,("_reg_info: policy key name = [%s]\n", regkey->key->name));
-	DEBUG(7,("_reg_info: policy key type = [%08x]\n", regkey->key->type));
+	DEBUG(7,("_winreg_QueryValue: policy key name = [%s]\n", regkey->key->name));
+	DEBUG(7,("_winreg_QueryValue: policy key type = [%08x]\n", regkey->key->type));
 
 	/* Handle QueryValue calls on HKEY_PERFORMANCE_DATA */
 	if(regkey->key->type == REG_KEY_HKPD)
@@ -287,6 +287,10 @@ WERROR _winreg_QueryValue(pipes_struct *p, struct winreg_QueryValue *r)
 		status = reg_queryvalue(p->mem_ctx, regkey, r->in.value_name->name,
 					&val);
 		if (!W_ERROR_IS_OK(status)) {
+
+			DEBUG(10,("_winreg_QueryValue: reg_queryvalue failed with: %s\n",
+				win_errstr(status)));
+
 			if (r->out.data_size) {
 				*r->out.data_size = 0;
 			}
diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c
index 7368b2d..c43c363 100644
--- a/source4/torture/rpc/winreg.c
+++ b/source4/torture/rpc/winreg.c
@@ -34,6 +34,7 @@
 #define TEST_SUBKEY TEST_KEY3 "\\subkey"
 #define TEST_SUBKEY_SD  TEST_KEY4 "\\subkey_sd"
 #define TEST_SUBSUBKEY_SD TEST_KEY4 "\\subkey_sd\\subsubkey_sd"
+#define TEST_VALUE "torture_value_name"
 
 #define TEST_SID "S-1-5-21-1234567890-1234567890-1234567890-500"
 
@@ -1853,6 +1854,27 @@ static bool test_key(struct dcerpc_pipe *p, struct torture_context *tctx,
 	return true;
 }
 
+static bool test_key_value(struct dcerpc_pipe *p,
+			   struct torture_context *tctx,
+			   struct policy_handle *handle)
+{
+	const char *value_name = TEST_VALUE;
+	enum winreg_Type type = REG_DWORD;
+	uint32_t value = 0x12345678;
+
+	DATA_BLOB blob = data_blob_talloc_zero(tctx, 4);
+	SIVAL(blob.data, 0, value);
+
+	torture_assert(tctx, test_SetValue(p, tctx, handle, value_name, type, blob.data, blob.length),
+		"test_SetValue failed");
+	torture_assert(tctx, test_QueryValue_full(p, tctx, handle, value_name, true),
+		talloc_asprintf(tctx, "test_QueryValue_full for %s value failed", value_name));
+	torture_assert(tctx, test_DeleteValue(p, tctx, handle, value_name),
+		"test_DeleteValue failed");
+
+	return true;
+}
+
 typedef NTSTATUS (*winreg_open_fn)(struct dcerpc_pipe *, TALLOC_CTX *, void *);
 
 static bool test_Open_Security(struct torture_context *tctx,
@@ -1960,6 +1982,8 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
 #endif
 		torture_assert(tctx, test_QueryValue_full(p, tctx, &newhandle, VALUE_CURRENT_VERSION, true),
 			"failed to query current version");
+		torture_assert(tctx, test_QueryValue_full(p, tctx, &newhandle, "IDoNotExist", false),
+			"failed to query current version");
 		torture_assert(tctx, test_CloseKey(p, tctx, &newhandle),
 			"failed to close current version key");
 	}
@@ -1987,6 +2011,11 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
 		torture_fail(tctx,
 			     "CreateKey failed (OpenKey after Create didn't work)\n");
 
+	if (created && !test_key_value(p, tctx, &newhandle)) {
+		torture_fail(tctx,
+			     "test_key_value failed\n");
+	}
+
 	if (created && !test_CloseKey(p, tctx, &newhandle))
 		torture_fail(tctx,
 			     "CreateKey failed (CloseKey after Open didn't work)\n");


-- 
Samba Shared Repository


More information about the samba-cvs mailing list