sendmail patch

From: Sergiu Popovici (svpat_private)
Date: Tue May 25 1999 - 23:38:39 PDT

  • Next message: Graham Evans: "Possible Netscape/Unix (Debian) problem"

       Hello,
    
       I did not test myself this patch, but I send it to you because I don't
    really know if sendmail-8.10 is available. Anyway, I made this post on
    sendmail-bugs a year ago.
    
       Cheers,
       SVP.
    
    
    ---------- Forwarded message ----------
    Date: Mon, 24 May 1999 11:57:14 -0700 (PDT)
    From: Gregory Neil Shapiro <sendmail+gshapiroat_private>
    To: svpat_private
    Cc: sendmail-bugsat_private
    
    Sergiu> Usually, if in the aliases file exists user1 as a pipe to a program,
    Sergiu> it is executed as user mail, group mail. But, if on the same machine
    Sergiu> user2 (real user) defines a forward (.forward file) for user1, the
    Sergiu> program where points user1 is executed as user2, not mail.mail.
    
    This should be fixed for 8.10.  Please try this patch.
    
    Diffs:
    ------------------------------------
    Index: sendmail/alias.c
    diff -u sendmail/alias.c:8.111 sendmail/alias.c:8.112
    --- sendmail/alias.c:8.111	Mon May 17 17:49:23 1999
    +++ sendmail/alias.c	Mon May 24 11:36:33 1999
    @@ -14,7 +14,7 @@
     #include <sendmail.h>
    
     #ifndef lint
    -static char id[] = "@(#)$Id: alias.c,v 8.111 1999/05/18 00:49:23 gshapiro Exp $";
    +static char id[] = "@(#)$Id: alias.c,v 8.112 1999/05/24 18:36:33 gshapiro Exp $";
     #endif /* ! lint */
    
    
    @@ -114,7 +114,9 @@
     		printaddr(a, FALSE);
     	}
     	a->q_state = QS_DONTSEND;
    +	a->q_flags |= QALIAS;
     	(void) sendtolist(p, a, sendq, aliaslevel + 1, e);
    +	a->q_flags &= ~QALIAS;
     	if (bitset(QSELFREF, a->q_flags) && a->q_state == QS_DONTSEND)
     		a->q_state = QS_OK;
    
    
    ------------------------------------
    Index: sendmail/recipient.c
    diff -u sendmail/recipient.c:8.188 sendmail/recipient.c:8.189
    --- sendmail/recipient.c:8.188	Sat May 22 20:25:36 1999
    +++ sendmail/recipient.c	Mon May 24 11:36:33 1999
    @@ -12,7 +12,7 @@
      */
    
     #ifndef lint
    -static char id[] = "@(#)$Id: recipient.c,v 8.188 1999/05/23 03:25:36 gshapiro Exp $";
    +static char id[] = "@(#)$Id: recipient.c,v 8.189 1999/05/24 18:36:33 gshapiro Exp $";
     #endif /* ! lint */
    
     #include <sendmail.h>
    @@ -295,6 +295,12 @@
     			a->q_rstatus = newstr("Unsafe for mailing to programs");
     			usrerr("550 Address %s is unsafe for mailing to programs",
     				a->q_alias->q_paddr);
    +		}
    +		else if (bitset(QALIAS, a->q_alias->q_flags))
    +		{
    +			a->q_uid = DefUid;
    +			a->q_gid = DefGid;
    +			a->q_flags |= QGOODUID;
     		}
     	}
    
    
    ------------------------------------
    Index: sendmail/sendmail.h
    diff -u sendmail/sendmail.h:8.354 sendmail/sendmail.h:8.355
    --- sendmail/sendmail.h:8.354	Sat May 22 20:37:03 1999
    +++ sendmail/sendmail.h	Mon May 24 11:36:34 1999
    @@ -10,7 +10,7 @@
      * the sendmail distribution.
      *
      *
    - *	$Id: sendmail.h,v 8.354 1999/05/23 03:37:03 gshapiro Exp $
    + *	$Id: sendmail.h,v 8.355 1999/05/24 18:36:34 gshapiro Exp $
      */
    
     /*
    @@ -20,7 +20,7 @@
     #ifdef _DEFINE
     # define EXTERN
     # ifndef lint
    -static char SmailId[] =	"@(#)$Id: sendmail.h,v 8.354 1999/05/23 03:37:03 gshapiro Exp $";
    +static char SmailId[] =	"@(#)$Id: sendmail.h,v 8.355 1999/05/24 18:36:34 gshapiro Exp $";
     # endif /* ! lint */
     #else /* _DEFINE */
     # define EXTERN extern
    @@ -185,8 +185,9 @@
     #define QEXPANDED	0x00000800	/* DSN: undergone list expansion */
     #define QDELIVERED	0x00001000	/* DSN: successful final delivery */
     #define QDELAYED	0x00002000	/* DSN: message delayed */
    +#define QALIAS		0x00004000	/* alias expansion in progress */
     #define QTHISPASS	0x40000000	/* temp: address set this pass */
    -#define QRCPTOK	0x80000000	/* recipient() processed address */
    +#define QRCPTOK		0x80000000	/* recipient() processed address */
    
     #define Q_PINGFLAGS	(QPINGONSUCCESS|QPINGONFAILURE|QPINGONDELAY)
    
    
    ------------------------------------
    



    This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 14:47:15 PDT