mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
lib: canonicalize pull_dos_date3()
Returns 0xFFFFFFFF as (time_t)-1. This avoids misenterpreting 0xFFFFFFFF as a valid time_t value (0xFFFFFFFF = Sun 07 Feb 2106 06:28:15 AM GMT) on 64-bit platforms where time_t is 64-bit. Currently direct and indirect callers of pull_dos_date3() rely on the fact that the resulting time_t is checked with null_time() which also checks for 0xFFFFFFFF as sentinel value amongst 0 and -1: return t == 0 || t == (time_t)0xFFFFFFFF || t == (time_t)-1; By returning -1 instead of 0xFFFFFFFF, callers can safely pass the result to unix_to_nt_time() which *doesn't* check for 0xFFFFFFFF, only -1. BUG: https://bugzilla.samba.org/show_bug.cgi?id=7771 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
7a69f642d7
commit
f2af647e7d
@ -326,6 +326,11 @@ _PUBLIC_ time_t pull_dos_date2(const uint8_t *date_ptr, int zone_offset)
|
||||
_PUBLIC_ time_t pull_dos_date3(const uint8_t *date_ptr, int zone_offset)
|
||||
{
|
||||
time_t t = (time_t)IVAL(date_ptr,0);
|
||||
|
||||
if (t == (time_t)0xFFFFFFFF) {
|
||||
t = (time_t)-1;
|
||||
}
|
||||
|
||||
if (!null_time(t)) {
|
||||
t += zone_offset;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user