[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-877-g7bdb430

Andrew Tridgell tridge at samba.org
Fri Oct 2 00:03:57 MDT 2009


The branch, master has been updated
       via  7bdb4306b033be3fdb49773560bd84a1202c3457 (commit)
       via  caa9e3ff8e0da229253f43e26980a394bb76e3ca (commit)
      from  7a59e6c222595df7dbd345b468b46bdab845cbf0 (commit)

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


- Log -----------------------------------------------------------------
commit 7bdb4306b033be3fdb49773560bd84a1202c3457
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 2 16:03:02 2009 +1000

    s4-torture: added a very simple samr ValidatePassword test

commit caa9e3ff8e0da229253f43e26980a394bb76e3ca
Author: Andrew Tridgell <tridge at samba.org>
Date:   Fri Oct 2 16:02:42 2009 +1000

    s4-samr: fake up a samr_ValidatePassword response
    
    mdw is working on the correct call to check the password strength

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

Summary of changes:
 source4/rpc_server/samr/dcesrv_samr.c |    6 +++++-
 source4/torture/rpc/samr.c            |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c
index 6dda06a..b8af5fd 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -4342,7 +4342,11 @@ static NTSTATUS dcesrv_samr_SetDsrmPassword(struct dcesrv_call_state *dce_call,
 static NTSTATUS dcesrv_samr_ValidatePassword(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
 				      struct samr_ValidatePassword *r)
 {
-	DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+	/* just say it's OK for now - we need to hook this into our
+	   password strength code later */
+	DEBUG(0,(__location__ ": Faking samr_ValidatePassword reply\n"));
+	(*r->out.rep) = talloc_zero(mem_ctx, union samr_ValidatePasswordRep);
+	return NT_STATUS_OK;
 }
 
 
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index f8853c1..6717195 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -6754,6 +6754,35 @@ static bool test_Connect(struct dcerpc_pipe *p, struct torture_context *tctx,
 }
 
 
+static bool test_samr_ValidatePassword(struct dcerpc_pipe *p, struct torture_context *tctx)
+{
+	struct samr_ValidatePassword r;
+	union samr_ValidatePasswordReq req;
+	union samr_ValidatePasswordRep *repp = NULL;
+	NTSTATUS status;
+	const char *passwords[] = { "penguin", "p at ssw0rd", "p at ssw0rd123$", NULL };
+	int i;
+
+	ZERO_STRUCT(r);
+	r.in.level = NetValidatePasswordReset;
+	r.in.req = &req;
+	r.out.rep = &repp;
+	
+	ZERO_STRUCT(req);
+	req.req3.account.string = "non-existant-account-aklsdji";
+
+	for (i=0; passwords[i]; i++) {
+		req.req3.password.string = passwords[i];
+		status = dcerpc_samr_ValidatePassword(p, tctx, &r);
+		torture_assert_ntstatus_ok(tctx, status, "samr_ValidatePassword");
+		torture_comment(tctx, "Server %s password '%s'\n", 
+				repp->ctr3.status==SAMR_VALIDATION_STATUS_SUCCESS?"allowed":"refused",
+				req.req3.password.string);
+	}
+
+	return true;	
+}
+
 bool torture_rpc_samr(struct torture_context *torture)
 {
 	NTSTATUS status;
@@ -6766,6 +6795,9 @@ bool torture_rpc_samr(struct torture_context *torture)
 		return false;
 	}
 
+	ret &= test_samr_ValidatePassword(p, torture);
+	exit(1);
+
 	ret &= test_Connect(p, torture, &handle);
 
 	if (!torture_setting_bool(torture, "samba3", false)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list