[SCM] Samba Shared Repository - branch v3-4-test updated -
release-4-0-0alpha7-925-gd8b37fe
Günther Deschner
gd at samba.org
Fri May 8 22:12:05 GMT 2009
The branch, v3-4-test has been updated
via d8b37fe08e9e833c466c82e07599356b746020fa (commit)
via 863b568624ef908c9454ed28d64a82e5afddd79a (commit)
from 1c5c537f449f2f808a7be2b11ef19c8a979d3b81 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test
- Log -----------------------------------------------------------------
commit d8b37fe08e9e833c466c82e07599356b746020fa
Author: Günther Deschner <gd at samba.org>
Date: Sat May 9 00:03:50 2009 +0200
s3-samr: Fix SetUserInfo level 16 and 21 w.r.t. ACB_AUTOLOCK acct_flag.
It is not allowed to *set* this flag remotely if it has been not set already.
Found by torture test.
Guenther
(cherry picked from commit a21bfc4daff9e67750021d96ffa0c1e6e4cd3472)
commit 863b568624ef908c9454ed28d64a82e5afddd79a
Author: Günther Deschner <gd at samba.org>
Date: Sat May 9 00:02:00 2009 +0200
s3-samr: Fix SetUserInfo level 7 when there has been no name change.
Found by torture test.
Guenther
(cherry picked from commit 705f36b804093f656498f7963768a418672cd422)
-----------------------------------------------------------------------
Summary of changes:
source3/rpc_server/srv_samr_nt.c | 6 ++++++
source3/rpc_server/srv_samr_util.c | 10 ++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index 0c480fa..9527338 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -4145,6 +4145,12 @@ static NTSTATUS set_user_info_7(TALLOC_CTX *mem_ctx,
code (like UNSUCCESSFUL instead of ALREADY_EXISTS). */
rc = can_create(mem_ctx, id7->account_name.string);
+
+ /* when there is nothing to change, we're done here */
+ if (NT_STATUS_EQUAL(rc, NT_STATUS_USER_EXISTS) &&
+ strequal(id7->account_name.string, pdb_get_username(pwd))) {
+ return NT_STATUS_OK;
+ }
if (!NT_STATUS_IS_OK(rc)) {
return rc;
}
diff --git a/source3/rpc_server/srv_samr_util.c b/source3/rpc_server/srv_samr_util.c
index 8f136b1..69daa31 100644
--- a/source3/rpc_server/srv_samr_util.c
+++ b/source3/rpc_server/srv_samr_util.c
@@ -534,6 +534,16 @@ void copy_id21_to_sam_passwd(const char *log_prefix,
DEBUG(10,("%s SAMR_FIELD_ACCT_FLAGS: %08X -> %08X\n", l,
pdb_get_acct_ctrl(to), from->acct_flags));
if (from->acct_flags != pdb_get_acct_ctrl(to)) {
+
+ /* You cannot autolock an unlocked account via
+ * setuserinfo calls, so make sure to remove the
+ * ACB_AUTOLOCK bit here - gd */
+
+ if ((from->acct_flags & ACB_AUTOLOCK) &&
+ !(pdb_get_acct_ctrl(to) & ACB_AUTOLOCK)) {
+ from->acct_flags &= ~ACB_AUTOLOCK;
+ }
+
if (!(from->acct_flags & ACB_AUTOLOCK) &&
(pdb_get_acct_ctrl(to) & ACB_AUTOLOCK)) {
/* We're unlocking a previously locked user. Reset bad password counts.
--
Samba Shared Repository
More information about the samba-cvs
mailing list