For reasons not completely understood at this time, gmime (as of
2.6.22) is returning a date before 1900 on bad date input. Since this
confuses some other software, we clamp such dates to 0,
i.e. 1970-01-01.
/* GMime really doesn't want to see a NULL date, so protect its
* sensibilities. */
- if (date == NULL || *date == '\0')
+ if (date == NULL || *date == '\0') {
time_value = 0;
- else
+ } else {
time_value = g_mime_utils_header_decode_date (date, NULL);
+ /*
+ * Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=779923
+ */
+ if (time_value < 0)
+ time_value = 0;
+ }
message->doc.add_value (NOTMUCH_VALUE_TIMESTAMP,
Xapian::sortable_serialise (time_value));
add_message [date]='"()"'
test_begin_subtest 'Bad dates translate to a date after the Unix epoch'
-test_subtest_known_broken
cat <<EOF >EXPECTED
thread:0000000000000001 1970-01-01 [1/1] Notmuch Test Suite; Test message #1 (inbox unread)
EOF