Index: contrib/sendmail/src/conf.c =================================================================== RCS file: /home/ncvs/src/contrib/sendmail/src/conf.c,v retrieving revision 1.5.2.11 retrieving revision 1.5.2.11.2.1 diff -c -r1.5.2.11 -r1.5.2.11.2.1 *** contrib/sendmail/src/conf.c 3 Sep 2002 01:50:15 -0000 1.5.2.11 --- contrib/sendmail/src/conf.c 29 Mar 2003 20:13:03 -0000 1.5.2.11.2.1 *************** *** 332,337 **** --- 332,339 ---- DontProbeInterfaces = DPI_PROBEALL; DoubleBounceAddr = "postmaster"; MaxHeadersLength = MAXHDRSLEN; + MaxMimeHeaderLength = MAXLINE; + MaxMimeFieldLength = MaxMimeHeaderLength / 2; MaxForwardEntries = 0; FastSplit = 1; #if SASL Index: contrib/sendmail/src/parseaddr.c =================================================================== RCS file: /home/ncvs/src/contrib/sendmail/src/parseaddr.c,v retrieving revision 1.1.1.2.6.10.2.1 retrieving revision 1.1.1.2.6.10.2.2 diff -c -r1.1.1.2.6.10.2.1 -r1.1.1.2.6.10.2.2 *** contrib/sendmail/src/parseaddr.c 3 Mar 2003 17:20:23 -0000 1.1.1.2.6.10.2.1 --- contrib/sendmail/src/parseaddr.c 29 Mar 2003 20:13:04 -0000 1.1.1.2.6.10.2.2 *************** *** 608,614 **** }; ! #define NOCHAR -1 /* signal nothing in lookahead token */ char ** prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab) --- 608,614 ---- }; ! #define NOCHAR (-1) /* signal nothing in lookahead token */ char ** prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab) *************** *** 694,699 **** --- 694,700 ---- /* see if there is room */ if (q >= &pvpbuf[pvpbsize - 5]) { + addrtoolong: usrerr("553 5.1.1 Address too long"); if (strlen(addr) > MAXNAME) addr[MAXNAME] = '\0'; *************** *** 705,715 **** } /* squirrel it away */ *q++ = c; } /* read a new input character */ ! c = *p++; if (c == '\0') { /* diagnose and patch up bad syntax */ --- 706,720 ---- } /* squirrel it away */ + #if !ALLOW_255 + if ((char) c == (char) -1 && !tTd(82, 101)) + c &= 0x7f; + #endif /* !ALLOW_255 */ *q++ = c; } /* read a new input character */ ! c = (*p++) & 0x00ff; if (c == '\0') { /* diagnose and patch up bad syntax */ *************** *** 764,769 **** --- 769,777 ---- } else if (c != '!' || state == QST) { + /* see if there is room */ + if (q >= &pvpbuf[pvpbsize - 5]) + goto addrtoolong; *q++ = '\\'; continue; } *************** *** 849,854 **** --- 857,865 ---- /* new token */ if (tok != q) { + /* see if there is room */ + if (q >= &pvpbuf[pvpbsize - 5]) + goto addrtoolong; *q++ = '\0'; if (tTd(22, 36)) {