diff options
author | Andrew Bartlett <abartlet@samba.org> | 2002-07-14 04:51:57 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2002-07-14 04:51:57 +0000 |
commit | a02a80d7d3b8f93e7afb7e8246b0cf4d8e6eefef (patch) | |
tree | b71ed9b79eaef71d9efa3e2d6ff7d8bffa28af80 /source3/passdb | |
parent | 3fbf057d78d063dd466cf1a0a2d762e98917a31e (diff) | |
download | samba-a02a80d7d3b8f93e7afb7e8246b0cf4d8e6eefef.tar.gz samba-a02a80d7d3b8f93e7afb7e8246b0cf4d8e6eefef.tar.xz samba-a02a80d7d3b8f93e7afb7e8246b0cf4d8e6eefef.zip |
Fix up a botched prevoius commit.
The idea here is to allow invalid LM passwords in otherwise valid accounts.
This happens when we create an account without a password, for example.
Previously we would stop at the LM password, and not read things like the
account flags correctly. Now we process the record, and just set the password
to NULL.
(Note, 'no password for access' is decided only on the basis of the Account
Control bits, not on the 'NULL' value of the password feild.).
Andrew Bartlett
(This used to be commit c590e0c970b5babf370924cef51530e5e215eaf2)
Diffstat (limited to 'source3/passdb')
-rw-r--r-- | source3/passdb/pdb_smbpasswd.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/source3/passdb/pdb_smbpasswd.c b/source3/passdb/pdb_smbpasswd.c index 5f94ef62fd..8c7ba364b8 100644 --- a/source3/passdb/pdb_smbpasswd.c +++ b/source3/passdb/pdb_smbpasswd.c @@ -407,12 +407,6 @@ static struct smb_passwd *getsmbfilepwent(struct smbpasswd_privates *smbpasswd_s /* Skip the ':' */ p++; - if (*p == '*' || *p == 'X') { - /* NULL LM password */ - pw_buf->smb_passwd = NULL; - DEBUG(10, ("getsmbfilepwent: LM password for user %s invalidated\n", user_name)); - } - if (linebuf_len < (PTR_DIFF(p, linebuf) + 33)) { DEBUG(0, ("getsmbfilepwent: malformed password entry (passwd too short)\n")); continue; @@ -427,11 +421,16 @@ static struct smb_passwd *getsmbfilepwent(struct smbpasswd_privates *smbpasswd_s pw_buf->smb_passwd = NULL; pw_buf->acct_ctrl |= ACB_PWNOTREQ; } else { - if (!pdb_gethexpwd((char *)p, smbpwd)) { - DEBUG(0, ("getsmbfilepwent: Malformed Lanman password entry (non hex chars)\n")); - continue; - } - pw_buf->smb_passwd = smbpwd; + if (*p == '*' || *p == 'X') { + /* NULL LM password */ + pw_buf->smb_passwd = NULL; + DEBUG(10, ("getsmbfilepwent: LM password for user %s invalidated\n", user_name)); + } else if (pdb_gethexpwd((char *)p, smbpwd)) { + pw_buf->smb_passwd = smbpwd; + } else { + pw_buf->smb_passwd = NULL; + DEBUG(0, ("getsmbfilepwent: Malformed Lanman password entry (non hex chars)\n")); + } } /* |