diff options
| author | David Bremner <david@tethera.net> | 2017-03-12 09:51:01 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-03-15 21:58:25 -0300 |
| commit | 62822a4e2dee695c486383f0fe3d90edafae24db (patch) | |
| tree | e05a8837ae72e4f4ea57a8a9928af31b695136f9 /lib | |
| parent | 8e7812d8243ed06fb4b2ff8f97598dbd1c139e0c (diff) | |
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.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/message.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/message.cc b/lib/message.cc index 007f1171..e08659e5 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -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)); |
