GNU bug report logs - #38654
27.0.50; mml-to-mime may produce faulty email messages

Previous Next

Package: emacs;

Reported by: Rainer Gemulla <rgemulla <at> gmx.de>

Date: Tue, 17 Dec 2019 21:22:01 UTC

Severity: normal

Fixed in version 27.0.50

Done: Rainer Gemulla <rgemulla <at> gmx.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38654 in the body.
You can then email your comments to 38654 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#38654; Package emacs. (Tue, 17 Dec 2019 21:22:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rainer Gemulla <rgemulla <at> gmx.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 17 Dec 2019 21:22:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Rainer Gemulla" <rgemulla <at> gmx.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.50; mml-to-mime may produce faulty email messages
Date: Tue, 17 Dec 2019 21:16:43 +0000
[Message part 1 (text/plain, inline)]
(I am sending this again as HTML so that the MML tags below do not get 
destroyed.)

I found that some email messages that I sent (mostly forwarded messages) 
were incorrectly encoded by Emacs. This error happened inconsistently, 
and (since no user-visible error is thrown), I was unaware of the 
problem for a while. It is also reproducible on eacho of my machines.

After some playing around, I found a way to reproduce:

1. Run: emacs -Q
2. M-x message-mode
3. Clear scratch buffer, then paste message below into scratch buffer
4. M-: (mml-to-mime)
   --> gives correct result
5. Clear scratch buffer, then paste message below into scratch buffer
6. Insert a new line "<#secure method=pgpmime mode=sign>" at start of 
message (after line "--text follows this line--")
7. M-: (mml-to-mime)
  --> throws (expected) signer name error
8. Clear scratch buffer, then paste message below into scratch buffer
9. M-: (mml-to-mime)
  --> wrong result (first Content-Type after "text follows..." is wrong)

I tried to track down the bug and found this piece of code in 
mml-parse-1, line 284:

(setq tag (list 'part '(type . "text/plain"))
      no-markup-p t
      warn t)

During step 9, this statement is executed, but the tag variable is not 
set to the list mentioned in the statement (seriously!). In my case, it 
had value 'Content-Type: multipart/alternative; boundary="====-=-="' 
right afterwards (as in the incorrect result below). At this point I 
gave up, looks like a deeper problem.


BEGIN ORIGINAL MESSAGE
From: a <at> b.ce
To: c <at> d.de
Subject: Test
--text follows this line--
Test

<#mml type=message/rfc822 disposition=inline>
<#multipart type=alternative>
<#part type=text/plain charset="UTF-8" disposition=inline nofile=yes>
Some text.
<#part type=text/html charset="UTF-8" nofile=yes>
Some more text.
<#/multipart>
<#/mml>
END ORIGINAL MESSAGE


BEGIN INCORRECT RESULT AFTER STEP 9
From: a <at> b.ce
To: c <at> d.de
Subject: Test
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
--text follows this line--
--=-=-=
Content-Type: multipart/alternative; boundary="====-=-="
Content-Transfer-Encoding: base64

VGV4dAoK
--=-=-=
Content-Type: message/rfc822
Content-Disposition: inline

--====-=-=
Content-Disposition: inline
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="====-=-="

Some text.

--====-=-=
Content-Type: text/html; charset=utf-8

Some more text.

--====-=-=--

--=-=-=--
END INCORRECT RESULT AFTER STEP 9


In GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.4)
 of 2019-12-17 built on potestas
Repository revision: dba1be0a9b3e92717f7921335f8507c007df8ca6
Repository branch: master
Windowing system distributor 'HC-Consult', version 11.0.12001004
System Description: Ubuntu 18.10

Recent messages:
   - ‘edebug-Go-nonstop-mode’ originally mapped on ‘G’
Quit
uncompressing mml.el.gz...done
uncompressing mml.el.gz...done
Searched 0/1 files
Searched 1/1 files
evil-line-move: Beginning of buffer
uncompressing mml.el.gz...done
Sticky Agenda buffer, use ‘r’ to refresh
Created gnus link.
"27.0.50"
Configured using:
 'configure --with-gnutls --with-jpeg --with-png --with-rsvg --with-tiff
 --with-xft --with-xml2 --with-xpm --with-imagemagick --with-xft
 --with-x-toolkit=gtk3 --with-pop --with-mailutils --with-xwidgets
 --with-modules --prefix=/usr/local/stow/emacs-master'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB
NOTIFY INOTIFY GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS
LIBSYSTEMD PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: notmuch-tree

Minor modes in effect:
  eval-sexp-fu-flash-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  gdb-many-windows: t
  yas-global-mode: t
  yas-minor-mode: t
  projectile-mode: t
  recentf-mode: t
  global-magit-file-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  syncmails-minor-mode: t
  diff-hl-margin-mode: t
  pupo-mode: t
  purpose-mode: t
  evil-goggles-mode: t
  winner-mode: t
  company-quickhelp-mode: t
  company-quickhelp-local-mode: t
  global-spacemacs-whitespace-cleanup-mode: t
  spacemacs-whitespace-cleanup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  winum-mode: t
  global-vi-tilde-fringe-mode: t
  spaceline-helm-mode: t
  save-place-mode: t
  savehist-mode: t
  persp-mode: t
  persistent-scratch-autosave-mode: t
  on-screen-global-mode: t
  ivy-rich-mode: t
  global-hl-todo-mode: t
  global-fasd-mode: t
  eyebrowse-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  global-evil-surround-mode: t
  global-anzu-mode: t
  anzu-mode: t
  engine-mode: t
  el-patch-use-package-mode: t
  editorconfig-mode: t
  diff-hl-flydiff-mode: t
  counsel-mode: t
  ivy-mode: t
  clean-aindent-mode: t
  which-key-mode: t
  override-global-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  spacemacs-leader-override-mode: t
  global-spacemacs-leader-override-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  xterm-mouse-mode: t
  global-auto-revert-mode: t
  ido-vertical-mode: t
  global-page-break-lines-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-save-visited-mode: t

Load-path shadows:
/home/rgemulla/.emacs.d/elpa/develop/ht-20190924.704/ht hides 
/home/rgemulla/.emacs.d/core/libs/ht
/home/rgemulla/.spacemacs.d/private/rgmacs/so-long hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/so-long
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-texinfo 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-texinfo
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-publish 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-publish
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-org 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-org
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-odt 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-odt
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-md 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-md
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-man 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-man
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-latex 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-latex
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-icalendar 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-icalendar
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-html 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-html
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-beamer 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-beamer
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ox-ascii 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ox-ascii
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-version 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-version
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-timer 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-timer
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-tempo 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-tempo
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-table 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-table
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-src 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-src
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-protocol 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-protocol
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-plot 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-plot
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-pcomplete 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-pcomplete
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-num 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-num
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-mouse 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-mouse
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-mobile 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-mobile
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-macs 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-macs
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-macro 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-macro
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-loaddefs 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-loaddefs
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-list 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-list
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-lint 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-lint
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-keys 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-keys
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-install 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-install
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-inlinetask 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-inlinetask
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-indent 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-indent
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-id 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-id
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-habit 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-habit
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-goto 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-goto
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-footnote 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-footnote
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-feed 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-feed
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-faces 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-faces
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-entities 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-entities
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-element 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-element
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-duration 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-duration
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-datetree 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-datetree
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-ctags 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-ctags
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-crypt 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-crypt
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-compat 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-compat
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-colview 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-colview
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-clock 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-clock
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-capture 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-capture
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-attach 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-attach
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-attach-git 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-attach-git
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-archive 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-archive
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/org-agenda 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/org-agenda
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-w3m 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-w3m
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-rmail 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-rmail
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-mhe 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-mhe
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-irc 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-irc
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-info 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-info
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-gnus 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-gnus
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-eww 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-eww
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-eshell 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-eshell
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-docview 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-docview
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-bibtex 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-bibtex
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ol-bbdb 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ol-bbdb
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-vala 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-vala
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-tangle 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-tangle
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-table 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-table
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-stan 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-stan
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-sqlite 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-sqlite
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-sql 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-sql
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-shen 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-shen
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-shell 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-shell
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-sed 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-sed
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-screen 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-screen
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-scheme 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-scheme
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-sass 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-sass
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-ruby 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-ruby
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-ref 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-ref
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-R 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-R
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-python 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-python
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-processing 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-processing
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-plantuml 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-plantuml
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-picolisp 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-picolisp
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-perl 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-perl
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-org 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-org
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-octave 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-octave
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-ocaml 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-ocaml
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-mscgen 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-mscgen
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-maxima 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-maxima
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-matlab 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-matlab
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-makefile 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-makefile
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-lua 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-lua
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-lob 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-lob
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-lisp 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-lisp
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-lilypond 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-lilypond
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-ledger 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-ledger
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-latex 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-latex
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-js 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-js
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-java 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-java
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-J 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-J
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-io 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-io
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-hledger 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-hledger
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-haskell 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-haskell
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-groovy 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-groovy
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-gnuplot 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-gnuplot
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-fortran 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-fortran
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-forth 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-forth
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-exp 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-exp
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-eval 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-eval
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-eshell 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-eshell
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-emacs-lisp 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-emacs-lisp
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-ebnf 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-ebnf
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-dot 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-dot
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-ditaa 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-ditaa
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-css 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-css
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-core 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-core
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-coq 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-coq
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-comint 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-comint
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-clojure 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-clojure
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-calc 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-calc
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-C 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-C
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-awk 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-awk
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-asymptote 
hides 
/usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-asymptote
/home/rgemulla/.emacs.d/elpa/develop/org-plus-contrib-20191209/ob-abc 
hides /usr/local/stow/emacs-master/share/emacs/27.0.50/lisp/org/ob-abc

Features:
(shadow sort gnus-alias mail-extr emacsbug sendmail smex german-holidays
oauth2 org-gnus elisp-slime-nav flycheck-package package-lint finder
eval-sexp-fu auto-highlight-symbol evil-lisp-state flycheck-pos-tip
flycheck highlight-numbers parent-mode highlight-parentheses info+
rainbow-delimiters mule-util helpful trace edebug backtrace info-look
elisp-refs loop org-duration cal-iso company-capf org-eldoc org-ref
org-ref-helm-bibtex org-ref-helm helm-utils helm-bibtex
bibtex-completion biblio biblio-download biblio-dissemin biblio-ieee
biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi
biblio-core helm-net helm-help helm-config helm-easymenu org-ref-core
reftex-cite reftex reftex-loaddefs reftex-vars parsebib ox-odt rng-loc
rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii
ox-publish ox org-ref-glossary org-ref-bibtex org-ref-citeproc key-chord
doi-utils org-ref-utils org-ref-pdf htmlize evil-org ob-groovy ob-R
ob-shell ob-C cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-java ob-scala
ensime-expand-region ensime ensime-mode ensime-sbt sbt-mode
sbt-mode-rgrep sbt-mode-comint sbt-mode-buffer sbt-mode-project
sbt-mode-vars ensime-http ensime-ui ensime-semantic-highlight ensime-doc
ensime-search ensime-helm helm helm-source helm-multi-match helm-lib
ensime-undo ensime-startup ensime-refactor ensime-popup ensime-eldoc
ensime-notes ensime-company ensime-editor ensime-ivy ensime-model popup
ensime-debug gdb-mi bindat gud ensime-stacktrace ensime-inf
ensime-overlay ensime-completion-util ensime-config ensime-util
ensime-client ensime-vars smartparens-scala scala-mode
scala-mode-prettify-symbols scala-mode-imenu scala-mode-map
scala-mode-fontlock scala-mode-indent scala-mode-paragraph
scala-mode-syntax scala-mode-lib pp hideshow flymake-proc flymake
arc-mode archive-mode ensime-macros ob-js org-bullets org-download
org-sticky-header toc-org yasnippet-snippets yasnippet org-indent
image-file org-element ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnir ol-docview doc-view image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m
editorconfig-core editorconfig-core-handle editorconfig-fnmatch
smartparens-org org-agenda-property org-agenda org-notmuch
org-projectile projectile skeleton find-dired grep org-category-capture
org-capture org-protocol the-org-mode-expansions calfw holidays
hol-loaddefs orgit evil-magit git-rebase recentf tree-widget forge-list
forge-commands forge-semi forge-bitbucket buck forge-gogs gogs
forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsexp ghub gnutls forge-notify forge-revnote forge-pullreq forge-issue
forge-topic bug-reference forge-post smartparens-markdown markdown-mode
forge-repo forge forge-core forge-db closql emacsql-sqlite emacsql
emacsql-compiler url-http url-auth url-gw nsm magit-submodule
magit-obsolete magit-popup magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode
magit-core magit-autorevert magit-margin magit-transient magit-process
magit-mode transient git-commit magit-git magit-section benchmark
magit-utils which-func vc-git log-edit pcvs-util add-log with-editor
async-bytecomp async org org-macro org-footnote org-pcomplete org-list
org-entities org-version ob-emacs-lisp org-table org-loaddefs find-func
gnus-sum shr svg dom gnus-group gnus-undo gnus-start gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range
gnus-win gnus nnheader smartparens-config smartparens-text
smartparens-python smartparens notmuch notmuch-hello notmuch-tree
notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message
notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company
notmuch-parser notmuch-wash coolj notmuch-query icalendar diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm
notmuch-lib notmuch-compat mm-view mml-smime smime dig diff-hl-margin
diff-hl-dired spacemacs-purpose-popwin window-purpose-x ibuf-macs
imenu-list imenu ibuf-ext ibuffer ibuffer-loaddefs window-purpose
window-purpose-fixes window-purpose-prefix-overload
window-purpose-switch let-alist window-purpose-layout
window-purpose-core window-purpose-configuration window-purpose-utils
evil-goggles pulse message rmc puny rfc822 mml mml-sec epa gnus-util
rmail rmail-loaddefs text-property-search jka-compr mailabbrev
mail-utils gmm-utils mailheader winner company-files company-keywords
company-etags etags fileloop company-gtags company-dabbrev-code
company-dabbrev company-semantic company-template company-yasnippet
company-ispell company-quickhelp pos-tip company goto-addr server
diminish zoom-frm frame-cmds frame-fns avoid xterm-color
spacemacs-whitespace-cleanup ws-butler winum vi-tilde-fringe font-utils
unicode-fonts symbol-overlay string-inflection spaceline-config
spaceline-segments spaceline powerline powerline-separators
powerline-themes saveplace savehist org-faces pyvenv eshell-z em-dirs
esh-var esh-mode em-term term ehelp eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups esh-util elpy-shell popwin
plstore persp-mode persistent-soft list-utils pcache eieio-base
persistent-scratch on-screen ob-ipython python-el-fgallina-expansions
python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat parse-time iso8601 ls-lisp dash-functional ob-python ob
ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core
ob-eval org-keys org-compat org-macs noflet cl-indent ivy-rich ivy-hydra
iflipb hl-todo fasd rg-dired-icons rg-dired-icons-w32
rg-dired-icons-cache eyebrowse evil-unimpaired f s dash
evil-textobj-line evil-snipe evil-embrace evil-surround embrace
expand-region text-mode-expansions er-basic-expansions
expand-region-core expand-region-custom evil-anzu anzu engine-mode
elfeed-curl url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf mailcap elfeed-log elfeed-db elfeed-lib url-util
time-date avl-tree generator url-queue xml-query el-patch editorconfig
noutline outline face-remap diff-hl-flydiff diff-hl vc-dir ewoc vc
vc-dispatcher diff-mode counsel xdg xref project dired dired-loaddefs
compile swiper ivy flx delsel colir color ivy-overlay clean-aindent-mode
clang-format xml gh-common marshal tex-site hybrid-mode
evil-evilified-state which-key use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
use-package-core hydra lv cus-edit cus-start cus-load evil
evil-keybindings evil-integration undo-tree diff cl evil-maps
evil-commands reveal flyspell ispell evil-jumps evil-command-window
evil-types evil-search evil-ex shell pcomplete comint ansi-color
evil-macros evil-repeat evil-states evil-core evil-common windmove
thingatpt rect evil-digraphs evil-vars ring bind-map quelpa mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr lisp-mnt help-fns radix-tree hl-line xt-mouse
autorevert filenotify so-long disp-table wid-edit leuven-theme
format-spec info finder-inf init-rgmacs cl-extra ido-vertical-mode ido
core-spacemacs core-use-package-ext core-transient-state
core-micro-state core-toggle core-keybindings core-fonts-support
core-themes-support core-display-init core-jump core-release-management
core-custom-settings core-configuration-layer eieio-compat
core-progress-bar core-spacemacs-buffer core-funcs ht help-mode warnings
package browse-url url-handlers url-parse auth-source cl-seq
password-cache json map url-vars seq eieio byte-opt bytecomp
byte-compile cconv eieio-core eieio-loaddefs epg epg-config
core-command-line pcase core-debug edmacro kmacro derived cl-macs gv
profiler easymenu cl-loaddefs cl-lib core-hooks page-break-lines
easy-mmode core-env load-env-vars rx core-dotspacemacs advice
core-emacs-backports subr-x core-dumper tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 2215720 1134039)
 (symbols 48 116965 1)
 (strings 32 422842 154750)
 (string-bytes 1 13887671)
 (vectors 16 88831)
 (vector-slots 8 1813590 402520)
 (floats 8 881 788)
 (intervals 56 16673 4021)
 (buffers 1000 58))
[Message part 2 (text/html, inline)]
[Message part 3 (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#38654; Package emacs. (Fri, 10 Jan 2020 14:05:02 GMT) Full text and rfc822 format available.

Message #8 received at 38654 <at> debbugs.gnu.org (full text, mbox):

From: "Rainer Gemulla" <rgemulla <at> gmx.de>
To: 38654 <at> debbugs.gnu.org
Subject: Further details
Date: Fri, 10 Jan 2020 14:04:29 +0000
[Message part 1 (text/plain, inline)]
The consequence of this bug is that Emacs sends incorrect messages 
without the sender noticing. When such a message is opened by the 
recipient (in any other email client I tried, including in Emacs), the 
content is not readable. This is an major bug.

The bug happens (mostly?) when a message is forwarded: the new parts 
added by the sender are lost because they are incorrectly encoded. The 
correct encoding and the incorrect one obtained in Emacs 27 below. The 
problematic parts are marked in red.

BEGIN CORRECT RESULT
From: a <at> b.ce
To: c <at> d.de
Subject: Test
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
--text follows this line--
--=-=-=
Content-Type: text/plain

Test


--=-=-=
Content-Type: message/rfc822
Content-Disposition: inline

--====-=-=
Content-Disposition: inline
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="====-=-="

Some text.

--====-=-=
Content-Type: text/html; charset=utf-8

Some more text.

--====-=-=--

--=-=-=--
END CORRECT RESULT
BEGIN INCORRECT RESULT AFTER STEP 9
From: a <at> b.ce
To: c <at> d.de
Subject: Test
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
--text follows this line--
--=-=-=
Content-Type: multipart/alternative; boundary="====-=-="
Content-Transfer-Encoding: base64

VGV4dAoK
--=-=-=
Content-Type: message/rfc822
Content-Disposition: inline

--====-=-=
Content-Disposition: inline
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="====-=-="

Some text.

--====-=-=
Content-Type: text/html; charset=utf-8

Some more text.

--====-=-=--

--=-=-=--
END INCORRECT RESULT AFTER STEP 9
[Message part 2 (text/html, inline)]
[Message part 3 (application/pgp-signature, inline)]

Reply sent to Rainer Gemulla <rgemulla <at> gmx.de>:
You have taken responsibility. (Tue, 03 Mar 2020 15:13:01 GMT) Full text and rfc822 format available.

Notification sent to Rainer Gemulla <rgemulla <at> gmx.de>:
bug acknowledged by developer. (Tue, 03 Mar 2020 15:13:02 GMT) Full text and rfc822 format available.

Message #13 received at 38654-done <at> debbugs.gnu.org (full text, mbox):

From: Rainer Gemulla <rgemulla <at> gmx.de>
To: 38654-done <at> debbugs.gnu.org
Subject: 27.0.50; mml-to-mime may produce faulty email messages
Date: Tue, 03 Mar 2020 16:12:09 +0100
[Message part 1 (text/plain, inline)]
Closing to resubmit with a more readable explanation.
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 01 Apr 2020 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 26 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.