Subject: 28.0.50; Gnus: Extract all Mime parts crashes

From: David Kastrup <[email-masked]>
Date: Thu, 23 Jul 2020 14:56:34 +0200

Using the Menu entry Article/MIME/Extract all parts (X m) for a mail
containing images and answering the mime type prompt with RET for
accepting the default, I get the following crash

Debugger entered--Lisp error: (wrong-type-argument stringp #<buffer  *mm*-685344>)
  string-match("image/.*" #<buffer  *mm*-685344>)
  gnus-summary-save-parts-1("image/.*" "/tmp/orchester/" ((#("multipart/mixed" 0 15 (start nil from "[email-masked]" buffer #<buffer  *mm*> boundary "abmob-f02279a1-54f7-4c44-8a1b-440a13134613")) (#<buffer  *mm*-7731> ("text/html" (charset . "UTF-8")) nil #f(compiled-function () #<bytecode 0xdfeee77424fce4f>) nil nil nil nil) (#<buffer  *mm*-990116> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1050506.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341\211\234Exif\0\0II*\0\10\0\0\0\16\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-267011> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1050507.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341\211\234Exif\0\0II*\0\10\0\0\0\16\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-807975> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1050510.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341\211\234Exif\0\0II*\0\10\0\0\0\16\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-687324> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1050512.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341\211\234Exif\0\0II*\0\10\0\0\0\16\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-263433> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1120133.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-995676> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1120134.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-685344> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1120135.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-267314> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1120136.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-121217> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1120137.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-296837> ("image/jpeg") base64 (lambda nil (let (... ...) (remove-images b b) (delete-region b ...))) ("attachment" (filename . "P1120139.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil)) (#<buffer  *mm*-685344> ("image/jpeg") base64 (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker (moves after insertion) at 2234 in *Article nnml+private:orchester*> #<marker at 2234 in *Article nnml+private:orchester*>))) ("attachment" (filename . "P1120135.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341}\234Exif\0\0II*\0\10\0\0\0\15\0\17\1\2\0..." :scale 1) nil) (#<buffer  *mm*-990116> ("image/jpeg") base64 (lambda nil (let ((inhibit-read-only t)) (delete-region #<marker (moves after insertion) at 2042 in *Article nnml+private:orchester*> #<marker at 2042 in *Article nnml+private:orchester*>))) ("attachment" (filename . "P1050506.JPG")) nil (image :type jpeg :data "\377\330\377\340\0\20JFIF\0\1\1\1\0\264\0\264\0\0\377\341\211\234Exif\0\0II*\0\10\0\0\0\16\0\17\1\2\0..." :scale 1) nil)) nil)
  gnus-summary-save-parts("image/.*" "/tmp/orchester/" nil)
  funcall-interactively(gnus-summary-save-parts "image/.*" "/tmp/orchester/" nil)
  call-interactively(gnus-summary-save-parts nil nil)
  command-execute(gnus-summary-save-parts)

In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.18, cairo version 1.16.0)
 of 2020-06-29 built on lola
Repository revision: 5a18b3a197cd32a9f639e3954c17058c4feb92ca
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Ubuntu 20.04 LTS

Recent messages:
No more unseen articles
No more unread articles
Viewing with eog %s
Displaying eog /tmp/emm.EgGPjD/P1120135.JPG...
Auto-saving...
Displaying eog /tmp/emm.EgGPjD/P1120135.JPG...done
Viewing with eog %s
Displaying eog /tmp/emm.E0WTyk/P1050506.JPG...done
Entering debugger...
Making completion list...

Configured using:
 'configure --without-toolkit-scroll-bars'

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

Important settings:
  value of $LC_MONETARY: de_DE.UTF-8
  value of $LC_NUMERIC: POSIX
  value of $LC_TIME: de_DE.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Debugger

Minor modes in effect:
  shell-dirtrack-mode: t
  TeX-PDF-mode: t
  minibuffer-electric-default-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dak/.emacs.d/elpa/auctex-12.2.0/auctex hides /usr/local/share/emacs/site-lisp/auctex
/home/dak/.emacs.d/elpa/auctex-12.2.0/tex-site hides /usr/local/share/emacs/site-lisp/tex-site

Features:
(shadow emacsbug rect calc-math calc-bin calc-yank dabbrev calc-undo
calccomp texmathp misearch multi-isearch descr-text magit-utils dash pp
cus-edit calc-stuff calc-frac calc-poly calc-arith calc-misc calc-aent
calc-units calc-alg calc-ext calc-menu calc calc-loaddefs calc-macs
help-fns radix-tree cl-print debug backtrace find-func rfc2104 mailalias
smtpmail sendmail nnir flow-fill shr-color color sort smiley gnus-cite
mm-archive mail-extr gnus-async gnus-bcklg qp gnus-kill gnus-ml
disp-table pop3 nndraft gnutls network-stream nsm nndoc nndir nnmh nnml
nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp
gnus-cache gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message
rmc rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win cl-extra
help-mode meta-mode plain-tex eww url-queue url url-proxy url-privacy
url-expand url-methods url-history mailcap shr url-cookie url-domsuf
url-util svg dom puny mm-url mule-util conf-mode doc-view jka-compr
image-mode exif ps-mode vc-filewise vc-rcs gnuplot-gui cl gnuplot
info-look diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
make-mode python tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp
format-spec latexenc preview prv-emacs reporter reftex-dcr reftex-auc
reftex reftex-loaddefs reftex-vars tex-bar toolbar-x noutline outline
font-latex tex-mode shell pcomplete tex-buf latex derived edmacro kmacro
latex-flymake rx flymake-proc flymake warnings thingatpt tex-ispell
tex-style tex-info tex dbus xml crm texinfo dired-x dired dired-loaddefs
sh-script smie executable smerge-mode diff scheme lilypond-mode compile
comint ansi-color ring autorevert filenotify vc-git diff-mode easy-mmode
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs advice minibuf-eldef gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search time-date
mail-utils mm-util mail-prsvr wid-edit desktop frameset cus-start
cus-load preview-latex server tex-site info package easymenu browse-url
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib 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 cairo move-toolbar gtk x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 1142810 91257)
 (symbols 48 74234 2)
 (strings 32 224390 33654)
 (string-bytes 1 11958106)
 (vectors 16 72027)
 (vector-slots 8 2646585 185090)
 (floats 8 511 546)
 (intervals 56 45061 666)
 (buffers 992 540))

-- 
David Kastrup