diff options
Diffstat (limited to 'mail/sendmail/patches/patch-ak')
-rw-r--r-- | mail/sendmail/patches/patch-ak | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/mail/sendmail/patches/patch-ak b/mail/sendmail/patches/patch-ak deleted file mode 100644 index 92ac4b5b253..00000000000 --- a/mail/sendmail/patches/patch-ak +++ /dev/null @@ -1,103 +0,0 @@ -$NetBSD: patch-ak,v 1.3 2006/06/14 18:53:53 adrianp Exp $ - ---- sendmail/mime.c.orig 2006-03-01 18:07:45.000000000 +0000 -+++ sendmail/mime.c -@@ -80,6 +80,7 @@ static bool MapNLtoCRLF; - ** boundaries -- the currently pending message boundaries. - ** NULL if we are processing the outer portion. - ** flags -- to tweak processing. -+** level -- recursion level. - ** - ** Returns: - ** An indicator of what terminated the message part: -@@ -96,12 +97,13 @@ struct args - }; - - int --mime8to7(mci, header, e, boundaries, flags) -+mime8to7(mci, header, e, boundaries, flags, level) - register MCI *mci; - HDR *header; - register ENVELOPE *e; - char **boundaries; - int flags; -+ int level; - { - register char *p; - int linelen; -@@ -122,6 +124,18 @@ mime8to7(mci, header, e, boundaries, fla - char pvpbuf[MAXLINE]; - extern unsigned char MimeTokenTab[256]; - -+ if (level > MAXMIMENESTING) -+ { -+ if (!bitset(EF_TOODEEP, e->e_flags)) -+ { -+ if (tTd(43, 4)) -+ sm_dprintf("mime8to7: too deep, level=%d\n", -+ level); -+ usrerr("mime8to7: recursion level %d exceeded", -+ level); -+ e->e_flags |= EF_DONT_MIME|EF_TOODEEP; -+ } -+ } - if (tTd(43, 1)) - { - sm_dprintf("mime8to7: flags = %x, boundaries =", flags); -@@ -242,7 +256,9 @@ mime8to7(mci, header, e, boundaries, fla - */ - - if (sm_strcasecmp(type, "multipart") == 0 && -- (!bitset(M87F_NO8BIT, flags) || bitset(M87F_NO8TO7, flags))) -+ (!bitset(M87F_NO8BIT, flags) || bitset(M87F_NO8TO7, flags)) && -+ !bitset(EF_TOODEEP, e->e_flags) -+ ) - { - - if (sm_strcasecmp(subtype, "digest") == 0) -@@ -286,10 +302,13 @@ mime8to7(mci, header, e, boundaries, fla - } - if (i >= MAXMIMENESTING) - { -- usrerr("mime8to7: multipart nesting boundary too deep"); -+ if (tTd(43, 4)) -+ sm_dprintf("mime8to7: too deep, i=%d\n", i); -+ if (!bitset(EF_TOODEEP, e->e_flags)) -+ usrerr("mime8to7: multipart nesting boundary too deep"); - - /* avoid bounce loops */ -- e->e_flags |= EF_DONT_MIME; -+ e->e_flags |= EF_DONT_MIME|EF_TOODEEP; - } - else - { -@@ -333,7 +352,8 @@ mime8to7(mci, header, e, boundaries, fla - goto writeerr; - if (tTd(43, 101)) - putline("+++after putheader", mci); -- bt = mime8to7(mci, hdr, e, boundaries, flags); -+ bt = mime8to7(mci, hdr, e, boundaries, flags, -+ level + 1); - if (bt == SM_IO_EOF) - goto writeerr; - } -@@ -374,7 +394,8 @@ mime8to7(mci, header, e, boundaries, fla - - if (sm_strcasecmp(type, "message") == 0) - { -- if (!wordinclass(subtype, 's')) -+ if (!wordinclass(subtype, 's') || -+ bitset(EF_TOODEEP, e->e_flags)) - { - flags |= M87F_NO8BIT; - } -@@ -397,7 +418,8 @@ mime8to7(mci, header, e, boundaries, fla - !bitset(M87F_NO8TO7, flags) && - !putline("MIME-Version: 1.0", mci)) - goto writeerr; -- bt = mime8to7(mci, hdr, e, boundaries, flags); -+ bt = mime8to7(mci, hdr, e, boundaries, flags, -+ level + 1); - mci->mci_flags &= ~MCIF_INMIME; - return bt; - } |