patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
		
			
				
	
	
		
			155 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: contrib/sendmail/src/deliver.c
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/contrib/sendmail/src/deliver.c,v
 | |
| retrieving revision 1.1.1.24
 | |
| diff -u -I__FBSDID -r1.1.1.24 deliver.c
 | |
| --- contrib/sendmail/src/deliver.c	22 Mar 2006 16:39:57 -0000	1.1.1.24
 | |
| +++ contrib/sendmail/src/deliver.c	12 Jun 2006 11:42:10 -0000
 | |
| @@ -4623,7 +4623,7 @@
 | |
|  		/* now do the hard work */
 | |
|  		boundaries[0] = NULL;
 | |
|  		mci->mci_flags |= MCIF_INHEADER;
 | |
| -		if (mime8to7(mci, e->e_header, e, boundaries, M87F_OUTER) ==
 | |
| +		if (mime8to7(mci, e->e_header, e, boundaries, M87F_OUTER, 0) ==
 | |
|  								SM_IO_EOF)
 | |
|  			goto writeerr;
 | |
|  	}
 | |
| @@ -4654,7 +4654,7 @@
 | |
|  			SuprErrs = true;
 | |
|  
 | |
|  		if (mime8to7(mci, e->e_header, e, boundaries,
 | |
| -				M87F_OUTER|M87F_NO8TO7) == SM_IO_EOF)
 | |
| +				M87F_OUTER|M87F_NO8TO7, 0) == SM_IO_EOF)
 | |
|  			goto writeerr;
 | |
|  
 | |
|  		/* restore SuprErrs */
 | |
| Index: contrib/sendmail/src/mime.c
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/contrib/sendmail/src/mime.c,v
 | |
| retrieving revision 1.1.1.14
 | |
| diff -u -I__FBSDID -r1.1.1.14 mime.c
 | |
| --- contrib/sendmail/src/mime.c	22 Mar 2006 16:39:59 -0000	1.1.1.14
 | |
| +++ contrib/sendmail/src/mime.c	12 Jun 2006 11:42:11 -0000
 | |
| @@ -80,6 +80,7 @@
 | |
|  **		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 @@
 | |
|  };
 | |
|  
 | |
|  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 @@
 | |
|  	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 @@
 | |
|  	*/
 | |
|  
 | |
|  	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 @@
 | |
|  		}
 | |
|  		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 @@
 | |
|  				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 @@
 | |
|  
 | |
|  	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 @@
 | |
|  			    !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;
 | |
|  		}
 | |
| Index: contrib/sendmail/src/sendmail.h
 | |
| ===================================================================
 | |
| RCS file: /home/ncvs/src/contrib/sendmail/src/sendmail.h,v
 | |
| retrieving revision 1.1.1.27
 | |
| diff -u -I__FBSDID -r1.1.1.27 sendmail.h
 | |
| --- contrib/sendmail/src/sendmail.h	22 Mar 2006 16:40:02 -0000	1.1.1.27
 | |
| +++ contrib/sendmail/src/sendmail.h	12 Jun 2006 11:42:13 -0000
 | |
| @@ -942,6 +942,7 @@
 | |
|  #define EF_TOOBIG	0x02000000L	/* message is too big */
 | |
|  #define EF_SPLIT	0x04000000L	/* envelope has been split */
 | |
|  #define EF_UNSAFE	0x08000000L	/* unsafe: read from untrusted source */
 | |
| +#define EF_TOODEEP	0x10000000L	/* message is nested too deep */
 | |
|  
 | |
|  #define DLVR_NOTIFY	0x01
 | |
|  #define DLVR_RETURN	0x02
 | |
| @@ -1655,7 +1656,7 @@
 | |
|  
 | |
|  /* functions */
 | |
|  extern bool	mime7to8 __P((MCI *, HDR *, ENVELOPE *));
 | |
| -extern int	mime8to7 __P((MCI *, HDR *, ENVELOPE *, char **, int));
 | |
| +extern int	mime8to7 __P((MCI *, HDR *, ENVELOPE *, char **, int, int));
 | |
|  
 | |
|  /*
 | |
|  **  Flags passed to returntosender.
 |