unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: tomotaka.suwa@gmail.com
To: 42029@debbugs.gnu.org
Subject: bug#42029: `gnus-registry-spool-action' gets field beyond message headers
Date: Wed, 24 Jun 2020 20:49:03 +0900	[thread overview]
Message-ID: <x8qyvr366kfzv4.fsf@fujimic.com> (raw)

Hi,

I've been suffering from `mail-source-crash-box' on getting new mail.

After some debug and investigation, I noticed that
`mail-extract-address-components' was failing by invalid addresses.

The issue happened in `gnus-registry-spool-action' and invalid addresses
are passed by calling `message-fetch-field' on the buffer not narrowed
to message headers.

Below snippet reproduce the root issue:

(with-temp-buffer
  (save-excursion
    ;; mail header
    (insert "From: from@bar.com\n"
            "To: to@bar.com\n"
            "Subject: test\n")
    (newline)
    ;; mail body
    (insert "message\n"
            "Cc: >,@ <foo@bar.com>\n")) ;; by incorrect decode
  (gnus-registry-spool-action 1 "test"))

In stead of `message-fetch-field', calling `message-field-value' would
solve the problem since it ensures the buffer is narrowed at first.

diff -u "d:/msys64/mingw64/share/emacs/26.3/lisp/gnus/gnus-registry.el.orig" "d:/msys64/mingw64/share/emacs/26.3/lisp/gnus/gnus-registry.el"
--- d:/msys64/mingw64/share/emacs/26.3/lisp/gnus/gnus-registry.el.orig	2020-06-24 11:10:49.458397900 +0900
+++ d:/msys64/mingw64/share/emacs/26.3/lisp/gnus/gnus-registry.el	2020-06-23 11:08:23.170050000 +0900
@@ -405,10 +405,10 @@
   (let ((to (gnus-group-guess-full-name-from-command-method group))
           (recipients (or recipients
                           (gnus-registry-sort-addresses
-                           (or (message-fetch-field "cc") "")
-                           (or (message-fetch-field "to") ""))))
-          (subject (or subject (message-fetch-field "subject")))
-          (sender (or sender (message-fetch-field "from"))))
+                           (or (message-field-value "cc") "")
+                           (or (message-field-value "to") ""))))
+          (subject (or subject (message-field-value "subject")))
+          (sender (or sender (message-field-value "from"))))
       (when (and (stringp id) (string-match "\r$" id))
         (setq id (substring id 0 -1)))
       (gnus-message 7 "Gnus registry: article %s spooled to %s"

Diff finished.  Wed Jun 24 11:13:17 2020

Gnus v5.13
GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
 of 2020-04-04





             reply	other threads:[~2020-06-24 11:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-24 11:49 tomotaka.suwa [this message]
2020-06-24 17:25 ` bug#42029: `gnus-registry-spool-action' gets field beyond message headers Eric Abrahamsen
2020-06-25  0:52   ` Tomotaka SUWA
2020-06-26 18:32     ` Eric Abrahamsen
2020-06-26 21:24       ` Basil L. Contovounesios
2020-06-26 22:01         ` Eric Abrahamsen
2020-06-29  2:26       ` Tomotaka SUWA
2020-07-19  0:20         ` Lars Ingebrigtsen
2020-07-19  3:05           ` Eric Abrahamsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=x8qyvr366kfzv4.fsf@fujimic.com \
    --to=tomotaka.suwa@gmail.com \
    --cc=42029@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).