diff options
| author | Eli Zaretskii <eliz@gnu.org> | 2022-12-19 19:01:04 +0200 |
|---|---|---|
| committer | Eli Zaretskii <eliz@gnu.org> | 2022-12-19 19:01:04 +0200 |
| commit | 23f7c9c2a92e4619b7c4d2286d4249f812cd695d (patch) | |
| tree | 84d0d7f963032494160a8bb0747a59b417a55baf | |
| parent | 63cdbd986bb8f841717e2d813df6f75b6b02cf8b (diff) | |
| download | emacs-23f7c9c2a92e4619b7c4d2286d4249f812cd695d.tar.gz | |
Fix storing email into nnmail by Gnus
* lisp/gnus/nnml.el (nnml--encode-headers): Wrap
'rfc2047-encode-string' calls with 'ignore-errors', to avoid
disrupting email workflows due to possibly-invalid headers.
Reported by Florian Weimer <fweimer@redhat.com>.
| -rw-r--r-- | lisp/gnus/nnml.el | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el index 40e4b9ea828..7aa445e6646 100644 --- a/lisp/gnus/nnml.el +++ b/lisp/gnus/nnml.el @@ -776,17 +776,22 @@ article number. This function is called narrowed to an article." (nnml--encode-headers headers) headers)))) +;; RFC2047-encode Subject and From, but leave invalid headers unencoded. (defun nnml--encode-headers (headers) (let ((subject (mail-header-subject headers)) (rfc2047-encoding-type 'mime)) (unless (string-match "\\`[[:ascii:]]*\\'" subject) - (setf (mail-header-subject headers) - (mail-encode-encoded-word-string subject t)))) + (let ((encoded-subject + (ignore-errors (mail-encode-encoded-word-string subject t)))) + (if encoded-subject + (setf (mail-header-subject headers) encoded-subject))))) (let ((from (mail-header-from headers)) (rfc2047-encoding-type 'address-mime)) (unless (string-match "\\`[[:ascii:]]*\\'" from) - (setf (mail-header-from headers) - (rfc2047-encode-string from t))))) + (let ((encoded-from + (ignore-errors (rfc2047-encode-string from t)))) + (if encoded-from + (setf (mail-header-from headers) encoded-from)))))) (defun nnml-get-nov-buffer (group &optional incrementalp) (let ((buffer (gnus-get-buffer-create |
