summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Lockyer <gary@catalyst.net.nz>2021-01-13 12:04:18 +1300
committerJeremy Allison <jra@samba.org>2021-01-13 23:52:38 +0000
commit4e624478dcd119f80f33b024b2f0b9a41688b425 (patch)
tree177444dfa11f9262adcdae861411c3fdbb63baeb
parent181afa9f68ca7ed0a60ac69f5ad62ee70d89a599 (diff)
downloadsamba-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.c3
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);