[arch-commits] Commit in mutt/trunk (4 files)

Gaëtan Bisson bisson at archlinux.org
Mon Jul 16 18:15:18 UTC 2018


    Date: Monday, July 16, 2018 @ 18:15:18
  Author: bisson
Revision: 328835

upstream update

Modified:
  mutt/trunk/PKGBUILD
Deleted:
  mutt/trunk/0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch
  mutt/trunk/0002-Sanitize-POP-bcache-paths.patch
  mutt/trunk/0003-Selectively-cache-headers.patch

-----------------------------------------------------------------+
 0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch |  127 ----------
 0002-Sanitize-POP-bcache-paths.patch                            |  100 -------
 0003-Selectively-cache-headers.patch                            |   39 ---
 PKGBUILD                                                        |   23 -
 4 files changed, 5 insertions(+), 284 deletions(-)

Deleted: 0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch
===================================================================
--- 0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch	2018-07-16 18:14:37 UTC (rev 328834)
+++ 0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch	2018-07-16 18:15:18 UTC (rev 328835)
@@ -1,127 +0,0 @@
-From 185152818541f5cdc059cbff3f3e8b654fc27c1d Mon Sep 17 00:00:00 2001
-From: Kevin McCarthy <kevin at 8t8.us>
-Date: Sat, 7 Jul 2018 19:03:44 -0700
-Subject: [PATCH] Properly quote IMAP mailbox names when (un)subscribing.
-
-When handling automatic subscription (via $imap_check_subscribed), or
-manual subscribe/unsubscribe commands, mutt generating a "mailboxes"
-command but failed to properly escape backquotes.
-
-Thanks to Jeriko One for the detailed bug report and patch, which this
-commit is based upon.
----
- imap/command.c      |  5 +++--
- imap/imap.c         |  7 +++++--
- imap/imap_private.h |  3 ++-
- imap/util.c         | 25 ++++++++++++++++++++-----
- 4 files changed, 30 insertions(+), 10 deletions(-)
-
-diff --git a/imap/command.c b/imap/command.c
-index c8825981..c79d4f28 100644
---- a/imap/command.c
-+++ b/imap/command.c
-@@ -842,8 +842,9 @@ static void cmd_parse_lsub (IMAP_DATA* idata, char* s)
- 
-   strfcpy (buf, "mailboxes \"", sizeof (buf));
-   mutt_account_tourl (&idata->conn->account, &url);
--  /* escape \ and " */
--  imap_quote_string(errstr, sizeof (errstr), list.name);
-+  /* escape \ and ". Also escape ` because the resulting
-+   * string will be passed to mutt_parse_rc_line. */
-+  imap_quote_string_and_backquotes (errstr, sizeof (errstr), list.name);
-   url.path = errstr + 1;
-   url.path[strlen(url.path) - 1] = '\0';
-   if (!mutt_strcmp (url.user, ImapUser))
-diff --git a/imap/imap.c b/imap/imap.c
-index 668203b8..c3a8ffd0 100644
---- a/imap/imap.c
-+++ b/imap/imap.c
-@@ -1930,6 +1930,7 @@ int imap_subscribe (char *path, int subscribe)
-   char buf[LONG_STRING];
-   char mbox[LONG_STRING];
-   char errstr[STRING];
-+  int mblen;
-   BUFFER err, token;
-   IMAP_MBOX mx;
- 
-@@ -1951,8 +1952,10 @@ int imap_subscribe (char *path, int subscribe)
-     mutt_buffer_init (&err);
-     err.data = errstr;
-     err.dsize = sizeof (errstr);
--    snprintf (mbox, sizeof (mbox), "%smailboxes \"%s\"",
--              subscribe ? "" : "un", path);
-+    mblen = snprintf (mbox, sizeof (mbox), "%smailboxes ",
-+                      subscribe ? "" : "un");
-+    imap_quote_string_and_backquotes (mbox + mblen, sizeof(mbox) - mblen,
-+                                      path);
-     if (mutt_parse_rc_line (mbox, &token, &err))
-       dprint (1, (debugfile, "Error adding subscribed mailbox: %s\n", errstr));
-     FREE (&token.data);
-diff --git a/imap/imap_private.h b/imap/imap_private.h
-index 312fbfe4..349c5a49 100644
---- a/imap/imap_private.h
-+++ b/imap/imap_private.h
-@@ -301,7 +301,8 @@ char* imap_next_word (char* s);
- time_t imap_parse_date (char* s);
- void imap_make_date (char* buf, time_t timestamp);
- void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path);
--void imap_quote_string (char* dest, size_t slen, const char* src);
-+void imap_quote_string (char* dest, size_t dlen, const char* src);
-+void imap_quote_string_and_backquotes (char *dest, size_t dlen, const char *src);
- void imap_unquote_string (char* s);
- void imap_munge_mbox_name (IMAP_DATA *idata, char *dest, size_t dlen, const char *src);
- void imap_unmunge_mbox_name (IMAP_DATA *idata, char *s);
-diff --git a/imap/util.c b/imap/util.c
-index 914c93c3..3274a70c 100644
---- a/imap/util.c
-+++ b/imap/util.c
-@@ -608,11 +608,9 @@ void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path)
- }
- 
- 
--/* imap_quote_string: quote string according to IMAP rules:
-- *   surround string with quotes, escape " and \ with \ */
--void imap_quote_string (char *dest, size_t dlen, const char *src)
-+static void _imap_quote_string (char *dest, size_t dlen, const char *src,
-+                                const char *to_quote)
- {
--  static const char quote[] = "\"\\";
-   char *pt;
-   const char *s;
- 
-@@ -625,7 +623,7 @@ void imap_quote_string (char *dest, size_t dlen, const char *src)
- 
-   for (; *s && dlen; s++)
-   {
--    if (strchr (quote, *s))
-+    if (strchr (to_quote, *s))
-     {
-       dlen -= 2;
-       if (!dlen)
-@@ -643,6 +641,23 @@ void imap_quote_string (char *dest, size_t dlen, const char *src)
-   *pt = 0;
- }
- 
-+/* imap_quote_string: quote string according to IMAP rules:
-+ *   surround string with quotes, escape " and \ with \ */
-+void imap_quote_string (char *dest, size_t dlen, const char *src)
-+{
-+  _imap_quote_string (dest, dlen, src, "\"\\");
-+}
-+
-+/* imap_quote_string_and_backquotes: quote string according to IMAP rules:
-+ *   surround string with quotes, escape " and \ with \.
-+ * Additionally, escape backquotes with \ to protect against code injection
-+ * when using the resulting string in mutt_parse_rc_line().
-+ */
-+void imap_quote_string_and_backquotes (char *dest, size_t dlen, const char *src)
-+{
-+  _imap_quote_string (dest, dlen, src, "\"\\`");
-+}
-+
- /* imap_unquote_string: equally stupid unquoting routine */
- void imap_unquote_string (char *s)
- {
--- 
-2.18.0
-

Deleted: 0002-Sanitize-POP-bcache-paths.patch
===================================================================
--- 0002-Sanitize-POP-bcache-paths.patch	2018-07-16 18:14:37 UTC (rev 328834)
+++ 0002-Sanitize-POP-bcache-paths.patch	2018-07-16 18:15:18 UTC (rev 328835)
@@ -1,100 +0,0 @@
-From 6aed28b40a0410ec47d40c8c7296d8d10bae7576 Mon Sep 17 00:00:00 2001
-From: Kevin McCarthy <kevin at 8t8.us>
-Date: Fri, 13 Jul 2018 11:16:33 -0700
-Subject: [PATCH] Sanitize POP bcache paths.
-
-Protect against bcache directory path traversal for UID values.
-
-Thanks for Jeriko One for the bug report and patch, which this commit
-is based upon.
----
- pop.c | 31 +++++++++++++++++++++++++------
- 1 file changed, 25 insertions(+), 6 deletions(-)
-
-diff --git a/pop.c b/pop.c
-index d9d95fbe..288166de 100644
---- a/pop.c
-+++ b/pop.c
-@@ -40,6 +40,25 @@
- #define HC_FEXT		"hcache"	/* extension for hcache as POP lacks paths */
- #endif
- 
-+/**
-+ * cache_id - Make a message-cache-compatible id
-+ * @param id POP message id
-+ * @retval ptr Sanitised string
-+ *
-+ * The POP message id may contain '/' and other awkward characters.
-+ *
-+ * @note This function returns a pointer to a static buffer.
-+ */
-+static const char *cache_id(const char *id)
-+{
-+  static char clean[SHORT_STRING];
-+
-+  strfcpy (clean, id, sizeof(clean));
-+  mutt_sanitize_filename (clean, 1);
-+
-+  return clean;
-+}
-+
- /* write line to file */
- static int fetch_message (char *line, void *file)
- {
-@@ -205,7 +224,7 @@ static int msg_cache_check (const char *id, body_cache_t *bcache, void *data)
-   /* message not found in context -> remove it from cache
-    * return the result of bcache, so we stop upon its first error
-    */
--  return mutt_bcache_del (bcache, id);
-+  return mutt_bcache_del (bcache, cache_id (id));
- }
- 
- #ifdef USE_HCACHE
-@@ -355,7 +374,7 @@ static int pop_fetch_headers (CONTEXT *ctx)
-        *        - if we also have a body: read
-        *        - if we don't have a body: new
-        */
--      bcached = mutt_bcache_exists (pop_data->bcache, ctx->hdrs[i]->data) == 0;
-+      bcached = mutt_bcache_exists (pop_data->bcache, cache_id (ctx->hdrs[i]->data)) == 0;
-       ctx->hdrs[i]->old = 0;
-       ctx->hdrs[i]->read = 0;
-       if (hcached)
-@@ -531,7 +550,7 @@ static int pop_fetch_message (CONTEXT* ctx, MESSAGE* msg, int msgno)
-   unsigned short bcache = 1;
- 
-   /* see if we already have the message in body cache */
--  if ((msg->fp = mutt_bcache_get (pop_data->bcache, h->data)))
-+  if ((msg->fp = mutt_bcache_get (pop_data->bcache, cache_id (h->data))))
-     return 0;
- 
-   /*
-@@ -578,7 +597,7 @@ static int pop_fetch_message (CONTEXT* ctx, MESSAGE* msg, int msgno)
- 			MUTT_PROGRESS_SIZE, NetInc, h->content->length + h->content->offset - 1);
- 
-     /* see if we can put in body cache; use our cache as fallback */
--    if (!(msg->fp = mutt_bcache_put (pop_data->bcache, h->data, 1)))
-+    if (!(msg->fp = mutt_bcache_put (pop_data->bcache, cache_id (h->data), 1)))
-     {
-       /* no */
-       bcache = 0;
-@@ -624,7 +643,7 @@ static int pop_fetch_message (CONTEXT* ctx, MESSAGE* msg, int msgno)
-    * portion of the headers, those required for the main display.
-    */
-   if (bcache)
--    mutt_bcache_commit (pop_data->bcache, h->data);
-+    mutt_bcache_commit (pop_data->bcache, cache_id (h->data));
-   else
-   {
-     cache->index = h->index;
-@@ -704,7 +723,7 @@ static int pop_sync_mailbox (CONTEXT *ctx, int *index_hint)
- 	snprintf (buf, sizeof (buf), "DELE %d\r\n", ctx->hdrs[i]->refno);
- 	if ((ret = pop_query (pop_data, buf, sizeof (buf))) == 0)
- 	{
--	  mutt_bcache_del (pop_data->bcache, ctx->hdrs[i]->data);
-+	  mutt_bcache_del (pop_data->bcache, cache_id (ctx->hdrs[i]->data));
- #if USE_HCACHE
- 	  mutt_hcache_delete (hc, ctx->hdrs[i]->data, strlen);
- #endif
--- 
-2.18.0
-

Deleted: 0003-Selectively-cache-headers.patch
===================================================================
--- 0003-Selectively-cache-headers.patch	2018-07-16 18:14:37 UTC (rev 328834)
+++ 0003-Selectively-cache-headers.patch	2018-07-16 18:15:18 UTC (rev 328835)
@@ -1,39 +0,0 @@
-From 31eef6c766f47df8281942d19f76e35f475c781d Mon Sep 17 00:00:00 2001
-From: Richard Russon <rich at flatcap.org>
-Date: Fri, 13 Jul 2018 11:33:16 -0700
-Subject: [PATCH] Selectively cache headers.
-
-Thanks to NeoMutt and Jeriko One for the patch, which was slightly
-modified to apply to the Mutt code.
----
- imap/util.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/imap/util.c b/imap/util.c
-index 27792944..d4cc2742 100644
---- a/imap/util.c
-+++ b/imap/util.c
-@@ -84,6 +84,7 @@ header_cache_t* imap_hcache_open (IMAP_DATA* idata, const char* path)
-   ciss_url_t url;
-   char cachepath[LONG_STRING];
-   char mbox[LONG_STRING];
-+  size_t len;
- 
-   if (path)
-     imap_cachepath (idata, path, mbox, sizeof (mbox));
-@@ -96,6 +97,12 @@ header_cache_t* imap_hcache_open (IMAP_DATA* idata, const char* path)
-     FREE (&mx.mbox);
-   }
- 
-+  if (strstr(mbox, "/../") || (strcmp(mbox, "..") == 0) || (strncmp(mbox, "../", 3) == 0))
-+    return NULL;
-+  len = strlen(mbox);
-+  if ((len > 3) && (strcmp(mbox + len - 3, "/..") == 0))
-+    return NULL;
-+
-   mutt_account_tourl (&idata->conn->account, &url);
-   url.path = mbox;
-   url_ciss_tostring (&url, cachepath, sizeof (cachepath), U_PATH);
--- 
-2.18.0
-

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-07-16 18:14:37 UTC (rev 328834)
+++ PKGBUILD	2018-07-16 18:15:18 UTC (rev 328835)
@@ -3,8 +3,8 @@
 # Maintainer: Gaetan Bisson <bisson at archlinux.org>
 
 pkgname=mutt
-pkgver=1.10.0
-pkgrel=3
+pkgver=1.10.1
+pkgrel=1
 pkgdesc='Small but very powerful text-based mail client'
 url='http://www.mutt.org/'
 license=('GPL')
@@ -12,24 +12,11 @@
 arch=('x86_64')
 optdepends=('smtp-forwarder: to send mail')
 depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'krb5')
-source=("http://ftp.mutt.org/pub/mutt/${pkgname}-${pkgver}.tar.gz"{,.asc}
-        '0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch'
-        '0002-Sanitize-POP-bcache-paths.patch'
-        '0003-Selectively-cache-headers.patch')
-sha256sums=('0215b5f90ef9cc33441a6ca842379b64412ed7f8da83ed68bfaa319179f5535b'
-            'SKIP'
-            '2baf7f86317d2d395a73010e62bf68c9f4bfcb2c60f7ca89a77fd0518ee9c521'
-            '108b43a4f1c9ff4011a37653a48bb1ce4b6863ba7c10d550249a231a22b07472'
-            'e9be583baaf2e23363c180dbea85a64b0b4c9c578953f328bb96a93ad9b4b7a5')
+source=("http://ftp.mutt.org/pub/mutt/${pkgname}-${pkgver}.tar.gz"{,.asc})
+sha256sums=('734a3883158ec3d180cf6538d8bd7f685ce641d2cdef657aa0038f76e79a54a0'
+            'SKIP')
 validpgpkeys=('8975A9B33AA37910385C5308ADEF768480316BDA')
 
-prepare() {
-	cd "${srcdir}/${pkgname}-${pkgver}"
-	patch -p1 -i ../0001-Properly-quote-IMAP-mailbox-names-when-un-subscribin.patch
-	patch -p1 -i ../0002-Sanitize-POP-bcache-paths.patch
-	patch -p1 -i ../0003-Selectively-cache-headers.patch
-}
-
 build() {
 	cd "${srcdir}/${pkgname}-${pkgver}"
 	./configure \



More information about the arch-commits mailing list