diff options
author | Gary Lockyer <gary@catalyst.net.nz> | 2021-01-13 12:04:18 +1300 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2021-01-13 23:52:38 +0000 |
commit | 4e624478dcd119f80f33b024b2f0b9a41688b425 (patch) | |
tree | 177444dfa11f9262adcdae861411c3fdbb63baeb | |
parent | 181afa9f68ca7ed0a60ac69f5ad62ee70d89a599 (diff) | |
download | samba-4e624478dcd119f80f33b024b2f0b9a41688b425.tar.gz |
s4 auth ntlm: Fix integer overflow in authsam_password_check_and_record
Fix a ubsan detected integer overflow.
../../source4/auth/ntlm/auth_sam.c:445:56: runtime error:
signed integer overflow: 60 * 600000000
cannot be represented in type 'int'
In practice this meant that the default for the smb.conf parameter
"old password allowed period" was approximately 16 seconds, rather than
the intended 60 minutes. Similarly the value used would be 22.5 times
less than the value specified in smd.conf.
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Jan 13 23:52:38 UTC 2021 on sn-devel-184
-rw-r--r-- | source4/auth/ntlm/auth_sam.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/source4/auth/ntlm/auth_sam.c b/source4/auth/ntlm/auth_sam.c index 70eddc12c53..c5b27171937 100644 --- a/source4/auth/ntlm/auth_sam.c +++ b/source4/auth/ntlm/auth_sam.c @@ -442,7 +442,8 @@ static NTSTATUS authsam_password_check_and_record(struct auth4_context *auth_con /* * NTTIME uses 100ns units */ - allowed_period = allowed_period_mins * 60 * 1000*1000*10; + allowed_period = (NTTIME) allowed_period_mins * + 60 * 1000*1000*10; pwdLastSet = samdb_result_nttime(msg, "pwdLastSet", 0); tv_now = timeval_current(); now = timeval_to_nttime(&tv_now); |