[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