summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-client/mutt/files')
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-abort-prompt-ctrlc-c837ab790d2e.patch19
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-gpgme-case-insensitive-domain-2c78b28027cc.patch100
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-mailbox-save-message-double-free-57124ea5592e.patch22
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-null-dptr-use-data-817c60d5da7d.patch23
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-pop-port-in-url-6b057dc52222.patch40
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-regexp-fail-crash-05cec973f0d9.patch40
-rw-r--r--mail-client/mutt/files/mutt-1.5.20-rfc-2047-decode-before-dequote-2a4ca6917fd0.patch116
7 files changed, 360 insertions, 0 deletions
diff --git a/mail-client/mutt/files/mutt-1.5.20-abort-prompt-ctrlc-c837ab790d2e.patch b/mail-client/mutt/files/mutt-1.5.20-abort-prompt-ctrlc-c837ab790d2e.patch
new file mode 100644
index 000000000000..64c1e3a639b4
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-abort-prompt-ctrlc-c837ab790d2e.patch
@@ -0,0 +1,19 @@
+http://dev.mutt.org/trac/changeset/c837ab790d2e
+http://dev.mutt.org/trac/ticket/1860
+
+Abort prompt on ^C, as was the case prior to 12a6de725483
+
+
+Index: curs_lib.c
+===================================================================
+--- curs_lib.c (revision 5981:cff8e8ce4327)
++++ curs_lib.c (revision 6010:c837ab790d2e)
+@@ -99,5 +99,8 @@
+
+ if (SigInt)
++ {
+ mutt_query_exit ();
++ return err;
++ }
+
+ if(ch == ERR)
diff --git a/mail-client/mutt/files/mutt-1.5.20-gpgme-case-insensitive-domain-2c78b28027cc.patch b/mail-client/mutt/files/mutt-1.5.20-gpgme-case-insensitive-domain-2c78b28027cc.patch
new file mode 100644
index 000000000000..d809fcd303b7
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-gpgme-case-insensitive-domain-2c78b28027cc.patch
@@ -0,0 +1,100 @@
+http://dev.mutt.org/trac/changeset/2c78b28027cc
+http://dev.mutt.org/trac/ticket/2180
+
+GPGME: Sender verification should be canse-insensitive for domain names.
+Closes #2180
+
+Index: crypt-gpgme.c
+===================================================================
+--- crypt-gpgme.c (revision 5935:f5849c72a274)
++++ crypt-gpgme.c (revision 6047:2c78b28027cc)
+@@ -4483,35 +4483,64 @@
+
+ if (sender)
+- {
+- if (signature_key)
++ {
++ if (signature_key)
++ {
++ gpgme_key_t key = signature_key;
++ gpgme_user_id_t uid = NULL;
++ int sender_length = 0;
++ int uid_length = 0;
++
++ sender_length = strlen (sender->mailbox);
++ for (uid = key->uids; uid && ret; uid = uid->next)
++ {
++ uid_length = strlen (uid->email);
++ if (1
++ && (uid->email[0] == '<')
++ && (uid->email[uid_length - 1] == '>')
++ && (uid_length == sender_length + 2))
+ {
+- gpgme_key_t key = signature_key;
+- gpgme_user_id_t uid = NULL;
+- int sender_length = 0;
+- int uid_length = 0;
+-
+- sender_length = strlen (sender->mailbox);
+- for (uid = key->uids; uid && ret; uid = uid->next)
+- {
+- uid_length = strlen (uid->email);
+- if (1
+- && (uid->email[0] == '<')
+- && (uid->email[uid_length - 1] == '>')
+- && (uid_length == sender_length + 2)
+- && (! strncmp (uid->email + 1, sender->mailbox, sender_length)))
+- ret = 0;
+- }
++ const char* at_sign = strchr(uid->email + 1, '@');
++ if (at_sign == NULL)
++ {
++ if (! strncmp (uid->email + 1, sender->mailbox, sender_length))
++ ret = 0;
++ }
++ else
++ {
++ /*
++ * Assume address is 'mailbox@domainname'.
++ * The mailbox part is case-sensitive,
++ * the domainname is not. (RFC 2821)
++ */
++ const char* tmp_email = uid->email + 1;
++ const char* tmp_sender = sender->mailbox;
++ /* length of mailbox part including '@' */
++ int mailbox_length = at_sign - tmp_email + 1;
++ int domainname_length = sender_length - mailbox_length;
++ int mailbox_match, domainname_match;
++
++ mailbox_match = (! strncmp (tmp_email, tmp_sender,
++ mailbox_length));
++ tmp_email += mailbox_length;
++ tmp_sender += mailbox_length;
++ domainname_match = (! strncasecmp (tmp_email, tmp_sender,
++ domainname_length));
++ if (mailbox_match && domainname_match)
++ ret = 0;
++ }
+ }
+- else
+- mutt_any_key_to_continue (_("Failed to verify sender"));
+- }
++ }
++ }
++ else
++ mutt_any_key_to_continue (_("Failed to verify sender"));
++ }
+ else
+ mutt_any_key_to_continue (_("Failed to figure out sender"));
+
+ if (signature_key)
+- {
+- gpgme_key_release (signature_key);
+- signature_key = NULL;
+- }
++ {
++ gpgme_key_release (signature_key);
++ signature_key = NULL;
++ }
+
+ return ret;
diff --git a/mail-client/mutt/files/mutt-1.5.20-mailbox-save-message-double-free-57124ea5592e.patch b/mail-client/mutt/files/mutt-1.5.20-mailbox-save-message-double-free-57124ea5592e.patch
new file mode 100644
index 000000000000..6f0f2e7d8f8d
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-mailbox-save-message-double-free-57124ea5592e.patch
@@ -0,0 +1,22 @@
+
+# HG changeset patch
+# User Brendan Cully <brendan@kublai.com>
+# Date 1266957745 28800
+# Node ID 57124ea5592ee350af277b543bfedf04d3cd0ace
+# Parent f17302c1022979c654170a0ca0f5a4cc8ffd9eb5
+Don't use freed ctx.path when updating utime of target mailbox in save-message.
+Thanks to Sean Boudreau for the bug report.
+
+diff -r f17302c10229 -r 57124ea5592e commands.c
+--- a/commands.c Mon Feb 22 23:01:39 2010 -0800
++++ b/commands.c Tue Feb 23 12:42:25 2010 -0800
+@@ -863,7 +863,7 @@
+ mx_close_mailbox (&ctx, NULL);
+
+ if (need_buffy_cleanup)
+- mutt_buffy_cleanup (ctx.path, &st);
++ mutt_buffy_cleanup (buf, &st);
+
+ mutt_clear_error ();
+ return (0);
+
diff --git a/mail-client/mutt/files/mutt-1.5.20-null-dptr-use-data-817c60d5da7d.patch b/mail-client/mutt/files/mutt-1.5.20-null-dptr-use-data-817c60d5da7d.patch
new file mode 100644
index 000000000000..ac721a28004f
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-null-dptr-use-data-817c60d5da7d.patch
@@ -0,0 +1,23 @@
+http://dev.mutt.org/hg/mutt/rev/817c60d5da7d
+
+# HG changeset patch
+# User Brendan Cully <brendan@kublai.com>
+# Date 1268089116 28800
+# Node ID 817c60d5da7dae3376a6ad683091ae24d7cf2ed2
+# Parent 8ec606f6cafb55299bec617d7d743deceb8d9e2d
+mutt_buffer_printf: NULL dptr means use data
+
+diff -r 8ec606f6cafb -r 817c60d5da7d muttlib.c
+--- a/muttlib.c Mon Mar 08 14:52:17 2010 -0800
++++ b/muttlib.c Mon Mar 08 14:58:36 2010 -0800
+@@ -1675,6 +1675,9 @@
+ va_start (ap, fmt);
+ va_copy (ap_retry, ap);
+
++ if (!buf->dptr)
++ buf->dptr = buf->data;
++
+ doff = buf->dptr - buf->data;
+ blen = buf->dsize - doff;
+ /* solaris 9 vsnprintf barfs when blen is 0 */
+
diff --git a/mail-client/mutt/files/mutt-1.5.20-pop-port-in-url-6b057dc52222.patch b/mail-client/mutt/files/mutt-1.5.20-pop-port-in-url-6b057dc52222.patch
new file mode 100644
index 000000000000..2a93cb385e01
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-pop-port-in-url-6b057dc52222.patch
@@ -0,0 +1,40 @@
+http://dev.mutt.org/trac/changeset/6b057dc52222
+http://dev.mutt.org/trac/ticket/3322
+
+# HG changeset patch
+# User Antonio Radici <antonio@dyne.org>
+# Date 1267406350 28800
+# Node ID 6b057dc522224530f8d3146ce5efef747c60d1dc
+# Parent 2c78b28027cc59762d8c10097196b3aa855e185a
+pop: allow user-specified port to override default in URL.
+Closes #3322.
+
+diff -r 2c78b28027cc -r 6b057dc52222 pop_lib.c
+--- a/pop_lib.c Sun Feb 28 17:00:33 2010 -0800
++++ b/pop_lib.c Sun Feb 28 17:19:10 2010 -0800
+@@ -43,6 +43,7 @@
+ /* Defaults */
+ acct->flags = 0;
+ acct->type = M_ACCT_TYPE_POP;
++ acct->port = 0;
+
+ c = safe_strdup (path);
+ url_parse_ciss (&url, c);
+@@ -60,10 +61,12 @@
+ acct->flags |= M_ACCT_SSL;
+
+ service = getservbyname (url.scheme == U_POP ? "pop3" : "pop3s", "tcp");
+- if (service)
+- acct->port = ntohs (service->s_port);
+- else
+- acct->port = url.scheme == U_POP ? POP_PORT : POP_SSL_PORT;;
++ if (!acct->port) {
++ if (service)
++ acct->port = ntohs (service->s_port);
++ else
++ acct->port = url.scheme == U_POP ? POP_PORT : POP_SSL_PORT;;
++ }
+
+ FREE (&c);
+ return 0;
+
diff --git a/mail-client/mutt/files/mutt-1.5.20-regexp-fail-crash-05cec973f0d9.patch b/mail-client/mutt/files/mutt-1.5.20-regexp-fail-crash-05cec973f0d9.patch
new file mode 100644
index 000000000000..30cf74c039ce
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-regexp-fail-crash-05cec973f0d9.patch
@@ -0,0 +1,40 @@
+http://dev.mutt.org/hg/mutt/rev/05cec973f0d9
+http://dev.mutt.org/hg/mutt/rev/8ec606f6cafb
+
+# HG changeset patch
+# User Brendan Cully <brendan@kublai.com>
+# Date 1268089247 28800
+# Node ID 05cec973f0d97065709f2ec55a42b39797995eff
+# Parent 817c60d5da7dae3376a6ad683091ae24d7cf2ed2
+When regexp compilation fails, report actual pattern along with error.
+
+diff -r 817c60d5da7d -r 05cec973f0d9 pattern.c
+--- a/pattern.c Mon Mar 08 14:58:36 2010 -0800
++++ b/pattern.c Mon Mar 08 15:00:47 2010 -0800
+@@ -254,6 +254,7 @@
+ static int eat_regexp (pattern_t *pat, BUFFER *s, BUFFER *err)
+ {
+ BUFFER buf;
++ char errmsg[STRING];
+ int r;
+
+ memset (&buf, 0, sizeof (buf));
+@@ -290,14 +291,15 @@
+ {
+ pat->p.rx = safe_malloc (sizeof (regex_t));
+ r = REGCOMP (pat->p.rx, buf.data, REG_NEWLINE | REG_NOSUB | mutt_which_case (buf.data));
+- FREE (&buf.data);
+ if (r)
+ {
+- regerror (r, pat->p.rx, err->data, err->dsize);
+- regfree (pat->p.rx);
++ regerror (r, pat->p.rx, errmsg, sizeof (errmsg));
++ mutt_buffer_printf (err, "'%s': %s", buf.data, errmsg);
++ FREE (&buf.data);
+ FREE (&pat->p.rx);
+ return (-1);
+ }
++ FREE (&buf.data);
+ }
+
+ return 0;
diff --git a/mail-client/mutt/files/mutt-1.5.20-rfc-2047-decode-before-dequote-2a4ca6917fd0.patch b/mail-client/mutt/files/mutt-1.5.20-rfc-2047-decode-before-dequote-2a4ca6917fd0.patch
new file mode 100644
index 000000000000..0da93d5a74f4
--- /dev/null
+++ b/mail-client/mutt/files/mutt-1.5.20-rfc-2047-decode-before-dequote-2a4ca6917fd0.patch
@@ -0,0 +1,116 @@
+http://dev.mutt.org/trac/ticket/2014
+http://dev.mutt.org/hg/mutt/rev/165b998920e4
+http://dev.mutt.org/hg/mutt/rev/cc02f079b1b9
+http://dev.mutt.org/hg/mutt/rev/41cf44ddbb4c
+http://dev.mutt.org/hg/mutt/rev/fec2720ff6ef
+
+# HG changeset patch
+# User Brendan Cully <brendan@kublai.com>
+# Date 1267511730 28800
+# Node ID 165b998920e45655aef33c74b76fe39b9ec9dc0b
+# Parent 86d93280e5b32af477502f124f5b12f65f879e53
+Another attempt to dequote RFC2047-encoded address comments (see #2014)
+
+diff -r 86d93280e5b3 -r 165b998920e4 copy.c
+--- a/copy.c Mon Mar 01 16:14:57 2010 -0800
++++ b/copy.c Mon Mar 01 22:35:30 2010 -0800
+@@ -868,6 +868,7 @@
+ int l, rp = 0;
+
+ ADDRESS *a = NULL;
++ ADDRESS *cur = NULL;
+
+ switch (tolower ((unsigned char) *s))
+ {
+@@ -937,6 +938,9 @@
+
+ mutt_addrlist_to_local (a);
+ rfc2047_decode_adrlist (a);
++ for (cur = a; cur; cur = cur->next)
++ if (cur->personal)
++ rfc822_dequote_comment (cur->personal);
+
+ /* angle brackets for return path are mandated by RfC5322,
+ * so leave Return-Path as-is */
+diff -r 86d93280e5b3 -r 165b998920e4 rfc822.c
+--- a/rfc822.c Mon Mar 01 16:14:57 2010 -0800
++++ b/rfc822.c Mon Mar 01 22:35:30 2010 -0800
+@@ -60,7 +60,7 @@
+ "bad address spec"
+ };
+
+-static void rfc822_dequote_comment (char *s)
++void rfc822_dequote_comment (char *s)
+ {
+ char *w = s;
+
+@@ -177,17 +177,10 @@
+ static const char *
+ parse_quote (const char *s, char *token, size_t *tokenlen, size_t tokenmax)
+ {
+- if (*tokenlen < tokenmax)
+- token[(*tokenlen)++] = '"';
+ while (*s)
+ {
+ if (*tokenlen < tokenmax)
+ token[*tokenlen] = *s;
+- if (*s == '"')
+- {
+- (*tokenlen)++;
+- return (s + 1);
+- }
+ if (*s == '\\')
+ {
+ if (!*++s)
+@@ -196,6 +189,8 @@
+ if (*tokenlen < tokenmax)
+ token[*tokenlen] = *s;
+ }
++ else if (*s == '"')
++ return (s + 1);
+ (*tokenlen)++;
+ s++;
+ }
+@@ -431,6 +426,17 @@
+ }
+ s = ps;
+ }
++ else if (*s == '"')
++ {
++ if (phraselen && phraselen < sizeof (phrase) - 1)
++ phrase[phraselen++] = ' ';
++ if ((ps = parse_quote (s + 1, phrase, &phraselen, sizeof (phrase) - 1)) == NULL)
++ {
++ rfc822_free_address (&top);
++ return NULL;
++ }
++ s = ps;
++ }
+ else if (*s == ':')
+ {
+ cur = rfc822_new_address ();
+@@ -490,13 +496,7 @@
+ terminate_buffer (phrase, phraselen);
+ cur = rfc822_new_address ();
+ if (phraselen)
+- {
+- if (cur->personal)
+- FREE (&cur->personal);
+- /* if we get something like "Michael R. Elkins" remove the quotes */
+- rfc822_dequote_comment (phrase);
+ cur->personal = safe_strdup (phrase);
+- }
+ if ((ps = parse_route_addr (s + 1, comment, &commentlen, sizeof (comment) - 1, cur)) == NULL)
+ {
+ rfc822_free_address (&top);
+diff -r 86d93280e5b3 -r 165b998920e4 rfc822.h
+--- a/rfc822.h Mon Mar 01 16:14:57 2010 -0800
++++ b/rfc822.h Mon Mar 01 22:35:30 2010 -0800
+@@ -46,6 +46,7 @@
+ }
+ ADDRESS;
+
++void rfc822_dequote_comment (char *s);
+ void rfc822_free_address (ADDRESS **);
+ void rfc822_qualify (ADDRESS *, const char *);
+ ADDRESS *rfc822_parse_adrlist (ADDRESS *, const char *s);