From 56dfed17d70048fefd1b7e10c81103109d6e44c8 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 26 Nov 2013 16:30:42 +1300 Subject: [PATCH] REVIEW:UF_LOCKOUT s4-samr: Reset badPwdCount and lockoutTime when ACB_AUTOLOCK is removed from the acct_ctrl Change-Id: I891e6f38edc1f74a717a0e71b434486e029d1e14 Signed-off-by: Andrew Bartlett REVIEW: "lockoutTime" NULL vs. 0 REVIEW: ACB_AUTOLOCK|ACB_PW_EXPIRED vs. UF_LOCKOUT|UF_PASSWORD_EXPIRED --- source4/rpc_server/samr/dcesrv_samr.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c index 6877b903b222..e1906bdaf56f 100644 --- a/source4/rpc_server/samr/dcesrv_samr.c +++ b/source4/rpc_server/samr/dcesrv_samr.c @@ -131,6 +131,21 @@ } \ set_el = ldb_msg_find_element(msg, attr); \ set_el->flags = LDB_FLAG_MOD_REPLACE; \ + if (!(r->in.info->field & ACB_AUTOLOCK)) { \ + int set_aflags_ret; \ + set_aflags_ret = samdb_msg_add_int(sam_ctx, mem_ctx, msg, "badPwdCount", 0); \ + if (set_aflags_ret != LDB_SUCCESS) { \ + return NT_STATUS_NO_MEMORY; \ + } \ + set_el = ldb_msg_find_element(msg, "badPwdCount"); \ + set_el->flags = LDB_FLAG_MOD_REPLACE; \ + set_aflags_ret = samdb_msg_add_int(sam_ctx, mem_ctx, msg, "lockoutTime", 0); \ + if (set_aflags_ret != LDB_SUCCESS) { \ + return NT_STATUS_NO_MEMORY; \ + } \ + set_el = ldb_msg_find_element(msg, "lockoutTime"); \ + set_el->flags = LDB_FLAG_MOD_REPLACE; \ + } \ } while (0) #define SET_LHOURS(msg, field, attr) do { \ -- 2.34.1