package/mutt: bump to version 1.14.4

- Drop patches (already in version) and so autoreconf
- Update indentation in hash file

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Fabrice Fontaine 2020-06-20 00:11:50 +02:00 committed by Thomas Petazzoni
parent 6756a3504c
commit 0ea7118f0e
5 changed files with 3 additions and 1468 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,310 +0,0 @@
From acd49f242c867583856973fd8644a45e53f56489 Mon Sep 17 00:00:00 2001
From: Kevin McCarthy <kevin@8t8.us>
Date: Wed, 8 Jan 2020 19:09:33 -0800
Subject: [PATCH] Convert hcachever.sh.in to hcachever.pl.
Use Digest::MD5 to remove build-time dependency on mutt_md5, for
cross-compilation support.
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Retrieved (and slightly updated to remove .gitignore) from:
https://gitlab.com/muttmua/mutt/commit/acd49f242c867583856973fd8644a45e53f56489]
---
.gitignore | 2 -
Makefile.am | 14 +++---
configure.ac | 7 +--
hcachever.pl | 112 ++++++++++++++++++++++++++++++++++++++++++++++++
hcachever.sh.in | 89 --------------------------------------
5 files changed, 118 insertions(+), 106 deletions(-)
create mode 100644 hcachever.pl
delete mode 100755 hcachever.sh.in
diff --git a/Makefile.am b/Makefile.am
index cede1adb..e46f6544 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,7 @@
include $(top_srcdir)/flymake.am
AUTOMAKE_OPTIONS = 1.6 foreign
-EXTRA_PROGRAMS = mutt_dotlock mutt_pgpring pgpewrap mutt_md5
+EXTRA_PROGRAMS = mutt_dotlock mutt_pgpring pgpewrap
if BUILD_IMAP
IMAP_SUBDIR = imap
@@ -80,7 +80,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \
README.SSL smime.h group.h mutt_zstrm.h \
muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \
ChangeLog mkchangelog.sh mkreldate.sh mutt_idna.h sidebar.h OPS.SIDEBAR \
- snprintf.c regex.c crypt-gpgme.h hcachever.sh.in \
+ snprintf.c regex.c crypt-gpgme.h hcachever.pl \
txt2c.c txt2c.sh version.sh check_sec.sh
EXTRA_SCRIPTS = smime_keys
@@ -93,14 +93,10 @@ mutt_pgpring_SOURCES = pgppubring.c pgplib.c lib.c extlib.c sha1.c md5.c pgppack
mutt_pgpring_LDADD = $(LIBOBJS) $(INTLLIBS)
mutt_pgpring_DEPENDENCIES = $(LIBOBJS) $(INTLDEPS)
-mutt_md5_SOURCES = md5.c
-mutt_md5_CFLAGS = -DMD5UTIL
-mutt_md5_LDADD =
-
txt2c_SOURCES = txt2c.c
txt2c_LDADD =
-noinst_PROGRAMS = $(MUTT_MD5) txt2c
+noinst_PROGRAMS = txt2c
mutt_dotlock.c: dotlock.c
cp $(srcdir)/dotlock.c mutt_dotlock.c
@@ -166,9 +162,9 @@ reldate.h: $(srcdir)/mkreldate.sh $(srcdir)/ChangeLog
# If configured with --with-included-gettext this means that intl will
# not have generated libintl.h yet, and mutt.h -> lib.h will generate
# an error.
-hcversion.h: $(srcdir)/mutt.h $(srcdir)/rfc822.h hcachever.sh $(MUTT_MD5)
+hcversion.h: $(srcdir)/mutt.h $(srcdir)/rfc822.h config.h $(srcdir)/hcachever.pl
( echo '#include "config.h"'; echo '#undef ENABLE_NLS'; echo '#include "mutt.h"'; ) \
- | $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - | sh ./hcachever.sh hcversion.h
+ | $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) - | perl $(srcdir)/hcachever.pl > hcversion.h
patchlist.c: $(srcdir)/PATCHES $(srcdir)/patchlist.sh
$(srcdir)/patchlist.sh < $(srcdir)/PATCHES > patchlist.c
diff --git a/configure.ac b/configure.ac
index 7fe55402..7906ce35 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1283,11 +1283,6 @@ then
MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS md5.o"
fi
-if test x$db_found != xno ; then
- MUTT_MD5="mutt_md5$EXEEXT"
-fi
-AC_SUBST(MUTT_MD5)
-
AC_SUBST(MUTTLIBS)
AC_SUBST(MUTT_LIB_OBJECTS)
AC_SUBST(LIBIMAP)
@@ -1677,5 +1672,5 @@ fi
AC_CONFIG_FILES(Makefile contrib/Makefile doc/Makefile imap/Makefile
intl/Makefile m4/Makefile po/Makefile.in autocrypt/Makefile
- hcachever.sh doc/instdoc.sh)
+ doc/instdoc.sh)
AC_OUTPUT
diff --git a/hcachever.pl b/hcachever.pl
new file mode 100644
index 00000000..be630a82
--- /dev/null
+++ b/hcachever.pl
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+#
+# Copyright (C) 2020 Kevin J. McCarthy <kevin@8t8.us>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# This file is a rewrite of hcachever.sh.in in perl.
+# The rewrite removes the dependency on mutt_md5, in order to
+# improve cross-compilation support.
+
+use strict;
+use warnings;
+# note Digest::MD5 is standard in perl since 5.8.0 (July 18, 2002)
+use Digest::MD5;
+
+
+sub read_line() {
+ my $line;
+
+ while (1) {
+ $line = <STDIN>;
+ return "" if (!$line);
+
+ chomp($line);
+ $line =~ s/^\s+//;
+ $line =~ s/\s+$//;
+ $line =~ s/\s{2,}//g;
+
+ return $line if ($line ne "");
+ }
+}
+
+
+sub process_struct($$) {
+ my ($line, $md5) = @_;
+ my $struct = "";
+ my @body;
+ my $bodytxt;
+ my $inbody = 0;
+
+ return if $line =~ /;$/;
+ if ($line =~ /{$/) {
+ $inbody = 1;
+ }
+
+ while (($line = read_line()) ne "") {
+ if (!$inbody) {
+ return if $line =~ /;$/;
+ if ($line =~ /{$/) {
+ $inbody = 1;
+ }
+ }
+
+ if ($line =~ /^} (.*);$/) {
+ $struct = $1;
+ last;
+ }
+ elsif ($line =~ /^}/) {
+ $struct = read_line();
+ if ($struct ne "") {
+ $struct =~ s/;$//;
+ }
+ last;
+ }
+ elsif (($line !~ /^#/) && ($line !~ /^{/)) {
+ if ($inbody) {
+ push @body, $line;
+ }
+ }
+ }
+
+ if ($struct =~ /^(ADDRESS|LIST|BUFFER|PARAMETER|BODY|ENVELOPE|HEADER)$/) {
+ $bodytxt = join(" ", @body);
+ print " * ${struct}: ${bodytxt}\n";
+
+ $md5->add(" ${struct} {${bodytxt}}");
+ }
+}
+
+
+my $md5;
+my $line;
+my $BASEVERSION = "2";
+
+$md5 = Digest::MD5->new;
+
+$md5->add($BASEVERSION);
+print "/* base version: $BASEVERSION\n";
+
+while (($line = read_line()) ne "") {
+ if ($line =~ /^typedef struct/) {
+ process_struct($line, $md5);
+ }
+}
+
+$md5->add("\n");
+my $digest = substr($md5->hexdigest, 0, 8);
+
+print " */\n";
+print "#define HCACHEVER 0x${digest}\n";
diff --git a/hcachever.sh.in b/hcachever.sh.in
deleted file mode 100755
index 730ca76b..00000000
--- a/hcachever.sh.in
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/sh
-
-BASEVERSION=2
-
-cleanstruct () {
- echo "$1" | sed -e 's/} *//' -e 's/;$//'
-}
-
-cleanbody () {
- echo "$1" | sed -e 's/{ *//'
-}
-
-getstruct () {
- STRUCT=""
- BODY=''
- inbody=0
- case "$1" in
- *'{') inbody=1 ;;
- *';') return ;;
- esac
-
- while read line
- do
- if test $inbody -eq 0
- then
- case "$line" in
- '{'*) inbody=1 ;;
- *';') return ;;
- esac
- fi
-
- case "$line" in
- '} '*)
- STRUCT=`cleanstruct "$line"`
- break
- ;;
- '}')
- read line
- STRUCT=`cleanstruct "$line"`
- break
- ;;
- '#'*) continue ;;
- *)
- if test $inbody -ne 0
- then
- BODY="$BODY $line"
- fi
- ;;
- esac
- done
-
- case $STRUCT in
- ADDRESS|LIST|BUFFER|PARAMETER|BODY|ENVELOPE|HEADER)
- BODY=`cleanbody "$BODY"`
- echo "$STRUCT: $BODY"
- ;;
- esac
- return
-}
-
-DEST="$1"
-TMPD="$DEST.tmp"
-
-TEXT="$BASEVERSION"
-
-echo "/* base version: $BASEVERSION" > $TMPD
-while read line
-do
- case "$line" in
- 'typedef struct'*)
- STRUCT=`getstruct "$line"`
- if test -n "$STRUCT"
- then
- NAME=`echo $STRUCT | cut -d: -f1`
- BODY=`echo $STRUCT | cut -d' ' -f2-`
- echo " * $NAME:" $BODY >> $TMPD
- TEXT="$TEXT $NAME {$BODY}"
- fi
- ;;
- esac
-done
-echo " */" >> $TMPD
-
-MD5TEXT=`echo "$TEXT" | ./mutt_md5`
-echo "#define HCACHEVER 0x"`echo $MD5TEXT | cut -c-8` >> $TMPD
-
-# TODO: validate we have all structs
-
-mv $TMPD $DEST
--
2.24.1

View File

@ -1,60 +0,0 @@
From 3e88866dc60b5fa6aaba6fd7c1710c12c1c3cd01 Mon Sep 17 00:00:00 2001
From: Kevin McCarthy <kevin@8t8.us>
Date: Sun, 14 Jun 2020 11:30:00 -0700
Subject: [PATCH] Prevent possible IMAP MITM via PREAUTH response.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is similar to CVE-2014-2567 and CVE-2020-12398. STARTTLS is not
allowed in the Authenticated state, so previously Mutt would
implicitly mark the connection as authenticated and skip any
encryption checking/enabling.
No credentials are exposed, but it does allow messages to be sent to
an attacker, via postpone or fcc'ing for instance.
Reuse the $ssl_starttls quadoption "in reverse" to prompt to abort the
connection if it is unencrypted.
Thanks very much to Damian Poddebniak and Fabian Ising from the
Münster University of Applied Sciences for reporting this issue, and
their help in testing the fix.
[Retrieved from:
https://gitlab.com/muttmua/mutt/commit/3e88866dc60b5fa6aaba6fd7c1710c12c1c3cd01]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
imap/imap.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/imap/imap.c b/imap/imap.c
index 63362176..3ca10df4 100644
--- a/imap/imap.c
+++ b/imap/imap.c
@@ -530,6 +530,22 @@ int imap_open_connection (IMAP_DATA* idata)
}
else if (ascii_strncasecmp ("* PREAUTH", idata->buf, 9) == 0)
{
+#if defined(USE_SSL)
+ /* An unencrypted PREAUTH response is most likely a MITM attack.
+ * Require a confirmation. */
+ if (!idata->conn->ssf)
+ {
+ if (option(OPTSSLFORCETLS) ||
+ (query_quadoption (OPT_SSLSTARTTLS,
+ _("Abort unencrypted PREAUTH connection?")) != MUTT_NO))
+ {
+ mutt_error _("Encrypted connection unavailable");
+ mutt_sleep (1);
+ goto err_close_conn;
+ }
+ }
+#endif
+
idata->state = IMAP_AUTHENTICATED;
if (imap_check_capabilities (idata) != 0)
goto bail;
--
GitLab

View File

@ -1,3 +1,3 @@
# Locally calculated
sha256 6cd71b5b3e6b255afef6bed3b5e1e8ee9819b3d7c9839fd95e798045882aa653 mutt-1.13.5.tar.gz
sha256 732f24b69a6c71cd8e01e4672bb8e12cc1cbb88a50a4665e6ca4fd95000a57ee GPL
sha256 ca8e56f8210b4fffa91ea08958b62b811cce552fe4fd7d726111cf53079ed3c3 mutt-1.14.4.tar.gz
sha256 732f24b69a6c71cd8e01e4672bb8e12cc1cbb88a50a4665e6ca4fd95000a57ee GPL

View File

@ -4,17 +4,12 @@
#
################################################################################
MUTT_VERSION = 1.13.5
MUTT_VERSION = 1.14.4
MUTT_SITE = https://bitbucket.org/mutt/mutt/downloads
MUTT_LICENSE = GPL-2.0+
MUTT_LICENSE_FILES = GPL
MUTT_DEPENDENCIES = ncurses
MUTT_CONF_OPTS = --disable-doc --disable-smtp
# We're patching configure.ac
MUTT_AUTORECONF = YES
# 0003-Prevent-possible-IMAP-MITM-via-PREAUTH-response.patch
MUTT_IGNORE_CVES += CVE-2020-14093
ifeq ($(BR2_PACKAGE_LIBICONV),y)
MUTT_DEPENDENCIES += libiconv