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))
  			{
