static char *map_sldate_to_esdate(TALLOC_CTX *mem_ctx,
const char *sldate)
{
+ char *endp = NULL;
struct tm *tm = NULL;
char *esdate = NULL;
char buf[21];
size_t len;
time_t t;
- int error;
- t = (time_t)smb_strtoull(sldate, NULL, 10, &error, SMB_STR_STANDARD);
- if (error != 0) {
+ errno = 0;
+ t = (time_t)strtoll(sldate, &endp, 10);
+ if (*sldate == '\0' || endp == sldate || *endp != '\0' || errno != 0) {
DBG_ERR("smb_strtoull [%s] failed\n", sldate);
return NULL;
}
}
len = strftime(buf, sizeof(buf),
- "%Y-%m-%dT%H:%M:%SZ", tm);
+ "%4Y-%m-%dT%H:%M:%SZ", tm);
if (len != 20) {
DBG_ERR("strftime [%s] failed\n", sldate);
return NULL;
}, {
"kMDItemFSContentChangeDate==$time.iso(2018-10-01T10:00:00Z)",
"file.last_modified:2018\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+ }, {
+ "kMDItemFSContentChangeDate==$time.iso(1960-10-01T10:00:00Z)",
+ "file.last_modified:1960\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+#ifdef __LP64__
+ }, {
+ "kMDItemFSContentChangeDate==$time.iso(1000-10-01T10:00:00Z)",
+ "file.last_modified:1000\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+ }, {
+ "kMDItemFSContentChangeDate==$time.iso(0000-10-01T10:00:00Z)",
+ "file.last_modified:0000\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+ }, {
+ "kMDItemFSContentChangeDate==$time.iso(9999-10-01T10:00:00Z)",
+ "file.last_modified:9999\\\\-10\\\\-01T10\\\\:00\\\\:00Z"
+#endif
}, {
"kMDItemFSContentChangeDate==\"1\"",
"file.last_modified:2001\\\\-01\\\\-01T00\\\\:00\\\\:01Z"