[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-1352-g16b4a36

Günther Deschner gd at samba.org
Thu Mar 20 22:19:26 GMT 2008


The branch, v4-0-test has been updated
       via  16b4a3685bf59faee22882ee14ddb95918f64e22 (commit)
       via  eb459be878e98cb58c6b5779584e187cdcbf4f91 (commit)
       via  078a6fdb3f8e389102a07b81b6b8d87fa8bf17c3 (commit)
      from  7c4356084a389c3a4edc16f06906ce6127a3a59b (commit)

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


- Log -----------------------------------------------------------------
commit 16b4a3685bf59faee22882ee14ddb95918f64e22
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Mar 20 21:59:46 2008 +0100

    Prove that a setuserinfo level 25 does set the pwdlastset field
    
    Very likely this is not the full story, but as it happens so often this proof
    is needed to fix a direct s3 bug.

commit eb459be878e98cb58c6b5779584e187cdcbf4f91
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Mar 20 21:11:49 2008 +0100

    Add the workstation to the anon sessetup credentials
    
    Without this patch the RPC-SAMBA3SESSIONKEY against W2k3 gives
    INVALID_PARAMETER for the anonymous session setup

commit 078a6fdb3f8e389102a07b81b6b8d87fa8bf17c3
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Mar 20 21:10:39 2008 +0100

    Fix a warning
    
    Without this patch I get
    ./libcli/security/proto.h:45: warning: 'struct auth_session_info' declared inside parameter list

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

Summary of changes:
 source/torture/rpc/samba3rpc.c |   53 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/torture/rpc/samba3rpc.c b/source/torture/rpc/samba3rpc.c
index 95252e7..204a9f2 100644
--- a/source/torture/rpc/samba3rpc.c
+++ b/source/torture/rpc/samba3rpc.c
@@ -47,6 +47,7 @@
 #include "libcli/smb_composite/smb_composite.h"
 #include "libcli/auth/libcli_auth.h"
 #include "lib/crypto/crypto.h"
+#include "auth/ntlmssp/ntlmssp.h"
 #include "libcli/security/proto.h"
 #include "param/param.h"
 #include "lib/registry/registry.h"
@@ -682,6 +683,7 @@ static bool join3(struct smbcli_state *cli,
 	struct dcerpc_pipe *samr_pipe;
 	struct policy_handle *wks_handle;
 	bool ret = false;
+	NTTIME last_password_change;
 
 	if ((mem_ctx = talloc_init("join3")) == NULL) {
 		d_printf("talloc_init failed\n");
@@ -701,6 +703,22 @@ static bool join3(struct smbcli_state *cli,
 		goto done;
 	}
 
+	{
+		struct samr_QueryUserInfo q;
+
+		q.in.user_handle = wks_handle;
+		q.in.level = 21;
+
+		status = dcerpc_samr_QueryUserInfo(samr_pipe, mem_ctx, &q);
+		if (!NT_STATUS_IS_OK(status)) {
+			d_printf("(%s) QueryUserInfo failed: %s\n",
+				  __location__, nt_errstr(status));
+			goto done;
+		}
+
+		last_password_change = q.out.info->info21.last_password_change;
+	}
+
 	cli_credentials_set_domain(wks_creds, dom_name, CRED_SPECIFIED);
 
 	if (use_level25) {
@@ -794,6 +812,39 @@ static bool join3(struct smbcli_state *cli,
 		}
 	}
 
+	{
+		struct samr_QueryUserInfo q;
+
+		q.in.user_handle = wks_handle;
+		q.in.level = 21;
+
+		status = dcerpc_samr_QueryUserInfo(samr_pipe, mem_ctx, &q);
+		if (!NT_STATUS_IS_OK(status)) {
+			d_printf("(%s) QueryUserInfo failed: %s\n",
+				  __location__, nt_errstr(status));
+			goto done;
+		}
+
+		if (use_level25) {
+			if (last_password_change
+			    == q.out.info->info21.last_password_change) {
+				d_printf("(%s) last_password_change unchanged "
+					 "during join, level25 must change "
+					 "it\n", __location__);
+				goto done;
+			}
+		}
+		else {
+			if (last_password_change
+			    != q.out.info->info21.last_password_change) {
+				d_printf("(%s) last_password_change changed "
+					 "during join, level24 doesn't "
+					 "change it\n", __location__);
+				goto done;
+			}
+		}
+	}
+
 	ret = true;
 
  done:
@@ -1321,6 +1372,8 @@ bool torture_samba3_sessionkey(struct torture_context *torture)
 		goto done;
 	}
 
+	cli_credentials_set_workstation(anon_creds, wks_name, CRED_SPECIFIED);
+
 	ret = true;
 
 	if (!torture_setting_bool(torture, "samba3", false)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list