diff options
Diffstat (limited to 'patch.r7023')
-rw-r--r-- | patch.r7023 | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/patch.r7023 b/patch.r7023 deleted file mode 100644 index b02f5e8..0000000 --- a/patch.r7023 +++ /dev/null @@ -1,83 +0,0 @@ -Index: bogofilter/src/mime.c -=================================================================== ---- bogofilter/src/mime.c (revision 7022) -+++ bogofilter/src/mime.c (revision 7023) -@@ -279,6 +279,25 @@ - mime_push(parent); - } - -+static bool is_final_boundary( -+ const byte *ins, -+ size_t inlen, -+ size_t blen -+) -+{ -+ if (inlen >= 5 -+ && inlen >= blen + 2 -+ && ins[0] == '-' -+ && ins[1] == '-' -+ && ins[blen+2] == '-' -+ && ins[blen+3] == '-') -+ { -+ return true; -+ } -+ return false; -+} -+ -+ - /** - * Check if the line given in \a boundary is a boundary of one of the - * outer MIME containers and store the results in \a b. -@@ -301,28 +320,18 @@ - (buf[blen - 1] == '\r' || buf[blen - 1] == '\n')) - blen--; - -- /* skip initial -- */ -- buf += 2; -- blen -= 2; -- -- /* skip and note ending --, if any */ -- if (blen > 2 && buf[blen - 1] == '-' && buf[blen - 2] == '-') { -- b->is_final = true; -- blen -= 2; -- } else { -- b->is_final = false; -- } -- - /* search stack for matching boundary, in reverse order */ - for (ptr = mime_stack_bot; ptr != NULL; ptr = ptr->parent) - { - if (is_mime_container(ptr) - && ptr->boundary != NULL -- && ptr->boundary_len == blen -- && (memcmp(ptr->boundary, buf, blen) == 0)) -+ && (ptr->boundary_len + 2 == blen -+ || ptr->boundary_len + 4 == blen) -+ && (memcmp(ptr->boundary, buf + 2, ptr->boundary_len) == 0)) - { - b->depth = ptr->depth; - b->is_valid = true; -+ b->is_final = is_final_boundary(buf, blen, ptr->boundary_len); - break; - } - } -Index: bogofilter/NEWS -=================================================================== ---- bogofilter/NEWS (revision 7022) -+++ bogofilter/NEWS (revision 7023) -@@ -15,6 +15,15 @@ - - ------------------------------------------------------------------------------- - -+ 2015-02-25 -+ -+ * Fix the lexer to handle MIME multipart messages properly when the -+ boundary ended in "--". The parser would previously never find the -+ MIME parts because it mistook all boundaries ending in two dashes to -+ be the final boundary of the multipart, rather than checking if the -+ two dashes were extra. -+ Reported by Matt Garretson to the bogofilter mailing list today. -+ - 2014-07-10 - - * Take patch from Julius Plenz to fix a bug in the charset converter |