source/smbd/trans2.c calles interpret_long_date() instead of
interpret_long_unix_date(), which means that a request timestamp of ~0 does
not become (time_t)-1 on some 64-bit platforms, resulting in files getting
bogus timestamps set.
Created attachment 563 [details]
Patch to prevent bogus timestamps being set on some 64-bit platforms.
Note that a couple of lines down, write time is compared with 0xffffffff when
(I think) it really needs to be compared against (time_t)-1 This change is
not included in this patch.
Note that this affects 2.2.9 as well, in case anyone cares :-)
I didn't write this patch, but I haven't been able to find out exactly who the
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.