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 author was.
Fixed. Thanks. Jeremy.
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.