GNU bug report logs -
#42029
`gnus-registry-spool-action' gets field beyond message headers
Previous Next
Reported by: tomotaka.suwa <at> gmail.com
Date: Wed, 24 Jun 2020 11:52:02 UTC
Severity: normal
Tags: fixed
Found in version 5.13
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
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 <at> bar.com\n"
"To: to <at> bar.com\n"
"Subject: test\n")
(newline)
;; mail body
(insert "message\n"
"Cc: >,@ <foo <at> 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
This bug report was last modified 4 years and 308 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.