From: David Bremner Date: Sat, 16 Sep 2023 14:15:46 +0000 (-0300) Subject: devel/nmweb: read mail files in binary mode. X-Git-Url: https://git.cworth.org/git?p=notmuch;a=commitdiff_plain;h=d4e0aaa76bd9e7a9e36abf47dc9ad3ea8bc10334 devel/nmweb: read mail files in binary mode. "ju" reported on IRC that browsing https://nmbug.notmuchmail.org/nmweb/show/20160719094205.qmf5sjnja6crt5t3%40gotlib crashed. The underlying issue is that python3 defaults to utf8 decoding files unless they are opened in binary mode. The file in question (in the nmbug archive; it depends a bit on the routing the message took) has Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit and some of it is not valid utf8. --- diff --git a/devel/notmuch-web/nmweb.py b/devel/notmuch-web/nmweb.py index b0d4d5cd..e0e87b49 100755 --- a/devel/notmuch-web/nmweb.py +++ b/devel/notmuch-web/nmweb.py @@ -207,7 +207,7 @@ env.globals['thread_nav'] = thread_nav def format_message(nm_msg, mid): fn = list(nm_msg.filenames())[0] - msg = MaildirMessage(open(fn)) + msg = MaildirMessage(open(fn, 'rb')) return format_message_walk(msg, mid) def decodeAnyway(txt, charset='ascii'):