summaryrefslogtreecommitdiff
path: root/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch')
-rw-r--r--mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch b/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch
new file mode 100644
index 000000000000..06f31ffeb46b
--- /dev/null
+++ b/mail-client/neomutt/files/0001-Fix-seqset-iterator-when-it-ends-in-a-comma.patch
@@ -0,0 +1,37 @@
+From fa1db5785e5cfd9d3cd27b7571b9fe268d2ec2dc Mon Sep 17 00:00:00 2001
+From: Kevin McCarthy <kevin@8t8.us>
+Date: Mon, 3 May 2021 13:11:30 -0700
+Subject: [PATCH] Fix seqset iterator when it ends in a comma
+
+If the seqset ended with a comma, the substr_end marker would be just
+before the trailing nul. In the next call, the loop to skip the
+marker would iterate right past the end of string too.
+
+The fix is simple: place the substr_end marker and skip past it
+immediately.
+---
+ imap/util.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/imap/util.c b/imap/util.c
+index 52aff7da0..27fb86295 100644
+--- a/imap/util.c
++++ b/imap/util.c
+@@ -1119,13 +1119,11 @@ int mutt_seqset_iterator_next(struct SeqsetIterator *iter, unsigned int *next)
+ if (iter->substr_cur == iter->eostr)
+ return 1;
+
+- while (!*(iter->substr_cur))
+- iter->substr_cur++;
+ iter->substr_end = strchr(iter->substr_cur, ',');
+ if (!iter->substr_end)
+ iter->substr_end = iter->eostr;
+ else
+- *(iter->substr_end) = '\0';
++ *(iter->substr_end++) = '\0';
+
+ char *range_sep = strchr(iter->substr_cur, ':');
+ if (range_sep)
+--
+2.30.2
+