mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
lib: clamp return value of g_mime_utils_header_decode_date to >=0
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.
This commit is contained in:
parent
8e7812d824
commit
62822a4e2d
2 changed files with 8 additions and 3 deletions
|
@ -1034,10 +1034,16 @@ _notmuch_message_set_header_values (notmuch_message_t *message,
|
|||
|
||||
/* 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));
|
||||
|
|
|
@ -5,7 +5,6 @@ test_description="parsing of bad dates"
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue