Package: mutt
Version: 1.5.21-6.2
Severity: normal
Tags: patch

Outlook S/MIME signatures' MIME information[1] look like this:

Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
        micalg=SHA1; boundary="----=_NextPart_000_0048_01CE0F64.555D09B0"

[...]
------=_NextPart_000_0048_01CE0F64.555D09B0
Content-Type: application/pkcs7-signature; name="smime.p7s"

RFC1847 wants both Content-Types to be the same, which Outlook does not do. The
attached patch tolerates an x- prefix in the minor protocol type. Otherwise
mutt will detect an "Inconsistent multipart/signed structure" and stop
verification. This issue has already been reported years ago[2].

[1] I hope it's Outlook and not Exchange's MAPI interface.
[2] http://marc.info/?l=mutt-users&m=116086978520003

-- Package-specific info:
Mutt 1.5.21 (2010-09-15)
Copyright (C) 1996-2009 Michael R. Elkins and others.
Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'.
Mutt is free software, and you are welcome to redistribute it
under certain conditions; type `mutt -vv' for details.

System: Linux 3.2.0-4-amd64 (x86_64)
ncurses: ncurses 5.9.20110404 (compiled with 5.9)
libidn: 1.25 (compiled with 1.25)
hcache backend: tokyocabinet 1.4.47
Compile options:
-DOMAIN
+DEBUG
-HOMESPOOL  +USE_SETGID  +USE_DOTLOCK  +DL_STANDALONE  +USE_FCNTL  -USE_FLOCK   
+USE_POP  +USE_IMAP  +USE_SMTP  
-USE_SSL_OPENSSL  +USE_SSL_GNUTLS  +USE_SASL  +USE_GSS  +HAVE_GETADDRINFO  
+HAVE_REGCOMP  -USE_GNU_REGEX  
+HAVE_COLOR  +HAVE_START_COLOR  +HAVE_TYPEAHEAD  +HAVE_BKGDSET  
+HAVE_CURS_SET  +HAVE_META  +HAVE_RESIZETERM  
+CRYPT_BACKEND_CLASSIC_PGP  +CRYPT_BACKEND_CLASSIC_SMIME  +CRYPT_BACKEND_GPGME  
-EXACT_ADDRESS  -SUN_ATTACHMENT  
+ENABLE_NLS  -LOCALES_HACK  +COMPRESSED  +HAVE_WC_FUNCS  +HAVE_LANGINFO_CODESET 
 +HAVE_LANGINFO_YESEXPR  
+HAVE_ICONV  -ICONV_NONTRANS  +HAVE_LIBIDN  +HAVE_GETSID  +USE_HCACHE  
ISPELL="/usr/bin/ispell"
SENDMAIL="/usr/sbin/sendmail"
MAILPATH="/var/mail"
PKGDATADIR="/usr/share/mutt"
SYSCONFDIR="/etc"
EXECSHELL="/bin/sh"
MIXMASTER="mixmaster"
To contact the developers, please mail to <mutt-...@mutt.org>.
To report a bug, please visit http://bugs.mutt.org/.

misc/fix-smime-outlook-recognition.patch
misc/am-maintainer-mode
features/ifdef
features/xtitles
features/trash-folder
features/purge-message
features/imap_fast_trash
features/sensible_browser_position
features-old/patch-1.5.4.vk.pgp_verbose_mime
features/compressed-folders
features/compressed-folders.debian
debian-specific/Muttrc
debian-specific/Md.etc_mailname_gethostbyname.diff
debian-specific/use_usr_bin_editor.diff
debian-specific/correct_docdir_in_man_page.diff
debian-specific/dont_document_not_present_features.diff
debian-specific/document_debian_defaults
debian-specific/assumed_charset-compat
debian-specific/467432-write_bcc.patch
debian-specific/566076-build_doc_adjustments.patch
misc/define-pgp_getkeys_command.diff
misc/gpg.rc-paths
misc/smime.rc
upstream/531430-imapuser.patch
upstream/537818-emptycharset.patch
upstream/543467-thread-segfault.patch
upstream/542817-smimekeys-tmpdir.patch
upstream/548577-gpgme-1.2.patch
upstream/553321-ansi-escape-segfault.patch
upstream/568295-references.patch
upstream/547980-smime_keys-chaining.patch
upstream/528233-readonly-open.patch
upstream/228671-pipe-mime.patch
upstream/383769-score-match.patch
upstream/578087-header-strchr.patch
upstream/603288-split-fetches.patch
upstream/537061-dont-recode-saved-attachments.patch
upstream/608706-fix-spelling-errors.patch
upstream/620854-pop3-segfault.patch
upstream/611412-bts-regexp.patch
upstream/624058-gnutls-deprecated-set-priority.patch
upstream/624085-gnutls-deprecated-verify-peers.patch
upstream/584138-mx_update_context-segfault.patch
upstream/619216-gnutls-CN-validation.patch
upstream/611410-no-implicit_autoview-for-text-html.patch
upstream/path_max
misc/579967-fixes-german-translation.patch
mutt.org

-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (500, 'testing'), (300, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages mutt depends on:
ii  libc6             2.13-37
ii  libcomerr2        1.42.5-1
ii  libgnutls26       2.12.20-4
ii  libgpg-error0     1.10-3.1
ii  libgpgme11        1.2.0-1.4
ii  libgssapi-krb5-2  1.10.1+dfsg-3
ii  libidn11          1.25-2
ii  libk5crypto3      1.10.1+dfsg-3
ii  libkrb5-3         1.10.1+dfsg-3
ii  libncursesw5      5.9-10
ii  libsasl2-2        2.1.25.dfsg1-6
ii  libtinfo5         5.9-10
ii  libtokyocabinet9  1.4.47-2

Versions of packages mutt recommends:
ii  exim4-daemon-light [mail-transport-agent]  4.80-7
ii  libsasl2-modules                           2.1.25.dfsg1-6
ii  locales                                    2.13-37
ii  mime-support                               3.52-1

Versions of packages mutt suggests:
ii  aspell           0.60.7~20110707-1
ii  ca-certificates  20130119
ii  gnupg            1.4.12-7
ii  ispell           3.3.02-6
pn  mixmaster        <none>
ii  openssl          1.0.1c-4
pn  urlview          <none>

Versions of packages mutt is related to:
ii  mutt          1.5.21-6.3
pn  mutt-dbg      <none>
pn  mutt-patched  <none>

-- no debconf information
Index: mutt-1.5.21/crypt.c
===================================================================
--- mutt-1.5.21.orig/crypt.c	2013-02-20 13:35:28.747076790 +0100
+++ mutt-1.5.21/crypt.c	2013-02-20 13:36:14.184235250 +0100
@@ -775,6 +775,7 @@
   char *protocol;
   int protocol_major = TYPEOTHER;
   char *protocol_minor = NULL;
+  char *xstripped_protocol_minor = NULL;
   
   BODY *b = a;
   BODY **signatures = NULL;
@@ -803,12 +804,16 @@
       *t = '\0';
     
     protocol_major = mutt_check_mime_type (major);
+
+    if (strncmp(protocol_minor, "x-", 2) == 0)
+      xstripped_protocol_minor = protocol_minor + 2;
   }
 
   /* consistency check */
 
   if (!(a && a->next && a->next->type == protocol_major && 
-      !mutt_strcasecmp (a->next->subtype, protocol_minor)))
+      (!mutt_strcasecmp (a->next->subtype, protocol_minor) ||
+      !mutt_strcasecmp (a->next->subtype, xstripped_protocol_minor))))
   {
     state_attach_puts (_("[-- Error: "
                          "Inconsistent multipart/signed structure! --]\n\n"),

Reply via email to