summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/passdb.h2
-rw-r--r--source3/rpc_parse/parse_samr.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/source3/include/passdb.h b/source3/include/passdb.h
index add286816c..139a753e8b 100644
--- a/source3/include/passdb.h
+++ b/source3/include/passdb.h
@@ -92,7 +92,7 @@ enum pdb_elements {
PDB_UNKNOWNSTR,
PDB_MUNGEDDIAL,
PDB_HOURS,
- PDB_UNKNOWN3,
+ PDB_FIELDS_PRESENT,
PDB_BAD_PASSWORD_COUNT,
PDB_LOGON_COUNT,
PDB_UNKNOWN6,
diff --git a/source3/rpc_parse/parse_samr.c b/source3/rpc_parse/parse_samr.c
index 7b2d886deb..d6f371d471 100644
--- a/source3/rpc_parse/parse_samr.c
+++ b/source3/rpc_parse/parse_samr.c
@@ -5994,6 +5994,15 @@ NTSTATUS init_sam_user_info21A(SAM_USER_INFO_21 *usr, SAM_ACCOUNT *pw, DOM_SID *
usr->group_rid = group_rid;
usr->acb_info = pdb_get_acct_ctrl(pw);
+ /*
+ Look at a user on a real NT4 PDC with usrmgr, press
+ 'ok'. Then you will see that fields_present is set to
+ 0x08f827fa. Look at the user immediately after that again,
+ and you will see that 0x00fffff is returned. This solves
+ the problem that you get access denied after having looked
+ at the user.
+ -- Volker
+ */
usr->fields_present = pdb_build_fields_present(pw);
usr->logon_divs = pdb_get_logon_divs(pw);