Subject: Re: bug#34387: 26.1; Gnus: handle empty message parts

From: Christophe Troestler <[email-masked]>
Date: Tue, 12 Feb 2019 08:31:39 +0100

On 12 February 2019 at 05:34 CET, Katsumi Yamaoka wrote:
>
> […] Could you let me know how it fails?

Here is the debugger trace (message attached) :

Debugger entered--Lisp error: (args-out-of-range 4409 4410)
  #f(compiled-function (handle) #<bytecode 0x1471e8d>)((#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil))
  apply(#f(compiled-function (handle) #<bytecode 0x1471e8d>) (#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil))
  gnus-mime-display-single@fix(#f(compiled-function (handle) #<bytecode 0x1471e8d>) (#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil))
  apply(gnus-mime-display-single@fix #f(compiled-function (handle) #<bytecode 0x1471e8d>) (#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil))
  gnus-mime-display-single((#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil))
  gnus-mime-display-part((#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil))
  mapcar(gnus-mime-display-part ((#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil) (#<buffer  *mm*-589619> ("application/pdf" (name . "homologie_de_contact_legendrienne_bilinearisee.pdf")) base64 nil ("attachment" (modification-date . "Fri, 08 Feb 2019 11:42:34 GMT") (creation-date . "Fri, 08 Feb 2019 11:40:17 GMT") (size . "308005") (filename . "homologie_de_contact_legendrienne_bilinearisee.pdf")) "homologie_de_contact_legendrienne_bilinearisee.pdf" nil nil)))
  gnus-mime-display-mixed(((#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil) (#<buffer  *mm*-589619> ("application/pdf" (name . "homologie_de_contact_legendrienne_bilinearisee.pdf")) base64 nil ("attachment" (modification-date . "Fri, 08 Feb 2019 11:42:34 GMT") (creation-date . "Fri, 08 Feb 2019 11:40:17 GMT") (size . "308005") (filename . "homologie_de_contact_legendrienne_bilinearisee.pdf")) "homologie_de_contact_legendrienne_bilinearisee.pdf" nil nil)))
  gnus-mime-display-part((#("multipart/mixed" 0 15 (boundary "_002_VI1PR0101MB215751953182701525CB4AD9E7690VI1PR0101MB2157_" buffer #<buffer  *mm*-468382> from "[email-masked]" start nil)) (#<buffer  *mm*-671873> ("text/html" (charset . "Windows-1252")) quoted-printable (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker at 4408 in *Article*> #<marker at 4408 in *Article*>))) nil nil nil nil) (#<buffer  *mm*-589619> ("application/pdf" (name . "homologie_de_contact_legendrienne_bilinearisee.pdf")) base64 nil ("attachment" (modification-date . "Fri, 08 Feb 2019 11:42:34 GMT") (creation-date . "Fri, 08 Feb 2019 11:40:17 GMT") (size . "308005") (filename . "homologie_de_contact_legendrienne_bilinearisee.pdf")) "homologie_de_contact_legendrienne_bilinearisee.pdf" nil nil)))
  gnus-display-mime()
  gnus-article-prepare-display()

> Otherwise, could you show me a sample email in question? […]

Attached.

>> […] (define-advice gnus-mime-display-single (:around (oldfn &rest handle) fix)
>>   "Protect against bad handling of empty message parts."
>>   (ignore-errors (apply oldfn handle)))
>
> I'd like to fix those problems in the Gnus code. :)

Sure — it was just a suggestion in the meantime! ;-)

Best,
Christophe

Subject: Plan théorie des nœuds
From: Damien GALANT <[email-masked]>
To: Christophe TROESTLER <[email-masked]>
Date: Fri, 8 Feb 2019 12:42:32 +0100