summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorgshapiro <gshapiro@FreeBSD.org>2005-02-14 02:39:14 +0000
committergshapiro <gshapiro@FreeBSD.org>2005-02-14 02:39:14 +0000
commite1f5440b9ed6c521a401bdddc4722b7ff5ef43a9 (patch)
treee109b48bd3a58abfa6dedd2be0e7f509d15c5b1d /contrib
parent59c6e3524b67debe90b8e7c57d4c84e7ea08a463 (diff)
downloadFreeBSD-src-e1f5440b9ed6c521a401bdddc4722b7ff5ef43a9.zip
FreeBSD-src-e1f5440b9ed6c521a401bdddc4722b7ff5ef43a9.tar.gz
Resolve conflicts from sendmail 8.13.3 import
MFC after: 4 days
Diffstat (limited to 'contrib')
-rw-r--r--contrib/sendmail/libsm/vsscanf.c87
-rw-r--r--contrib/sendmail/mail.local/mail.local.c51
-rw-r--r--contrib/sendmail/makemap/makemap.c8
-rw-r--r--contrib/sendmail/smrsh/smrsh.88
-rw-r--r--contrib/sendmail/smrsh/smrsh.c10
-rw-r--r--contrib/sendmail/src/conf.c28
-rw-r--r--contrib/sendmail/src/headers.c4
-rw-r--r--contrib/sendmail/src/mci.c4
-rw-r--r--contrib/sendmail/src/savemail.c5
9 files changed, 78 insertions, 127 deletions
diff --git a/contrib/sendmail/libsm/vsscanf.c b/contrib/sendmail/libsm/vsscanf.c
deleted file mode 100644
index 498f449..0000000
--- a/contrib/sendmail/libsm/vsscanf.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Sendmail, Inc. and its suppliers.
- * All rights reserved.
- * Copyright (c) 1990, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Donn Seeley at UUNET Technologies, Inc.
- *
- * By using this file, you agree to the terms and conditions set
- * forth in the LICENSE file which can be found at the top level of
- * the sendmail distribution.
- */
-
-#include <sm/gen.h>
-SM_RCSID("@(#)$Id: vsscanf.c,v 1.23 2002/02/01 02:28:00 ca Exp $")
-#include <string.h>
-#include <sm/io.h>
-
-/*
-** SM_EOFREAD -- dummy read function for faked file below
-**
-** Parameters:
-** fp -- file pointer
-** buf -- location to place read data
-** len -- number of bytes to read
-**
-** Returns:
-** 0 (zero) always
-*/
-
-/* type declaration for later use */
-static ssize_t sm_eofread __P((SM_FILE_T *, char *, size_t));
-
-/* ARGSUSED0 */
-static ssize_t
-sm_eofread(fp, buf, len)
- SM_FILE_T *fp;
- char *buf;
- size_t len;
-{
- return 0;
-}
-
-/*
-** SM_VSSCANF -- scan a string to find data units
-**
-** Parameters:
-** str -- strings containing data
-** fmt -- format directive for finding data units
-** ap -- memory locations to place format found data units
-**
-** Returns:
-** Failure: SM_IO_EOF
-** Success: number of data units found
-**
-** Side Effects:
-** Attempts to strlen() 'str'; if not a '\0' terminated string
-** then the call may SEGV/fail.
-** Faking the string 'str' as a file.
-*/
-
-int
-sm_vsscanf(str, fmt, ap)
- const char *str;
- const char *fmt;
- SM_VA_LOCAL_DECL
-{
- SM_FILE_T fake;
-
- fake.sm_magic = SmFileMagic;
- fake.f_timeout = SM_TIME_FOREVER;
- fake.f_timeoutstate = SM_TIME_BLOCK;
- fake.f_file = -1;
- fake.f_flags = SMRD;
- fake.f_bf.smb_base = fake.f_p = (unsigned char *)str;
- fake.f_bf.smb_size = fake.f_r = strlen(str);
- fake.f_read = sm_eofread;
- fake.f_ub.smb_base = NULL;
- fake.f_close = NULL;
- fake.f_open = NULL;
- fake.f_write = NULL;
- fake.f_seek = NULL;
- fake.f_setinfo = fake.f_getinfo = NULL;
- fake.f_type = "sm_vsscanf:fake";
- return sm_vfscanf(&fake, SM_TIME_FOREVER, fmt, ap);
-}
diff --git a/contrib/sendmail/mail.local/mail.local.c b/contrib/sendmail/mail.local/mail.local.c
index d623ac9..b5ccd5b 100644
--- a/contrib/sendmail/mail.local/mail.local.c
+++ b/contrib/sendmail/mail.local/mail.local.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2004 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1990, 1993, 1994
* The Regents of the University of California. All rights reserved.
@@ -15,12 +15,12 @@
#include <sm/gen.h>
SM_IDSTR(copyright,
-"@(#) Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.\n\
+"@(#) Copyright (c) 1998-2004 Sendmail, Inc. and its suppliers.\n\
All rights reserved.\n\
Copyright (c) 1990, 1993, 1994\n\
The Regents of the University of California. All rights reserved.\n")
-SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.251 2003/11/03 18:38:29 ca Exp $")
+SM_IDSTR(id, "@(#)$Id: mail.local.c,v 8.253 2004/11/01 20:42:42 ca Exp $")
#include <stdlib.h>
#include <sm/errstring.h>
@@ -148,6 +148,7 @@ bool nofsync = false;
bool HoldErrs = false; /* Hold errors in ErrBuf */
bool LMTPMode = false;
bool BounceQuota = false; /* permanent error when over quota */
+bool CloseMBDB = false;
char *HomeMailFile = NULL; /* store mail in homedir */
#if HASHSPOOL
@@ -159,6 +160,9 @@ bool StripRcptDomain = true;
#endif /* HASHSPOOL */
char SpoolPath[MAXPATHLEN];
+char *parseaddr __P((char *, bool));
+char *process_recipient __P((char *));
+void dolmtp __P((void));
void deliver __P((int, char *));
int e_to_sys __P((int));
void notifybiff __P((char *));
@@ -173,6 +177,18 @@ const char *hashname __P((char *));
#endif /* HASHSPOOL */
+static void
+sm_exit(status)
+ int status;
+{
+ if (CloseMBDB)
+ {
+ sm_mbdb_terminate();
+ CloseMBDB = false; /* not really necessary, but ... */
+ }
+ exit(status);
+}
+
int
main(argc, argv)
int argc;
@@ -202,11 +218,13 @@ main(argc, argv)
# endif /* LOG_MAIL */
from = NULL;
+
+ /* XXX can this be converted to a compile time check? */
if (sm_strlcpy(SpoolPath, _PATH_MAILDIR, sizeof(SpoolPath)) >=
sizeof(SpoolPath))
{
mailerr("421", "Configuration error: _PATH_MAILDIR too large");
- exit(EX_CONFIG);
+ sm_exit(EX_CONFIG);
}
#if HASHSPOOL
while ((ch = getopt(argc, argv, "7BbdD:f:h:r:lH:p:ns")) != -1)
@@ -340,22 +358,21 @@ main(argc, argv)
mailerr(errcode, "Can not open mailbox database %s: %s",
mbdbname, sm_strexit(err));
- exit(err);
+ sm_exit(err);
}
+ CloseMBDB = true;
if (LMTPMode)
{
- extern void dolmtp __P((void));
-
if (argc > 0)
{
mailerr("421", "Users should not be specified in command line if LMTP required");
- exit(EX_TEMPFAIL);
+ sm_exit(EX_TEMPFAIL);
}
dolmtp();
/* NOTREACHED */
- exit(EX_OK);
+ sm_exit(EX_OK);
}
/* Non-LMTP from here on out */
@@ -390,11 +407,11 @@ main(argc, argv)
if (fd < 0)
{
flush_error();
- exit(ExitVal);
+ sm_exit(ExitVal);
}
for (; *argv != NULL; ++argv)
deliver(fd, *argv);
- exit(ExitVal);
+ sm_exit(ExitVal);
/* NOTREACHED */
return ExitVal;
}
@@ -484,7 +501,7 @@ parseaddr(s, rcpt)
if (p == NULL)
{
mailerr("421 4.3.0", "Memory exhausted");
- exit(EX_TEMPFAIL);
+ sm_exit(EX_TEMPFAIL);
}
(void) sm_strlcpy(p, s, l);
@@ -540,7 +557,7 @@ dolmtp()
{
(void) fflush(stdout);
if (fgets(buf, sizeof(buf) - 1, stdin) == NULL)
- exit(EX_OK);
+ sm_exit(EX_OK);
p = buf + strlen(buf) - 1;
if (p >= buf && *p == '\n')
*p-- = '\0';
@@ -654,7 +671,7 @@ dolmtp()
if (sm_strcasecmp(buf, "quit") == 0)
{
printf("221 2.0.0 Bye\r\n");
- exit(EX_OK);
+ sm_exit(EX_OK);
}
goto syntaxerr;
/* NOTREACHED */
@@ -681,7 +698,7 @@ dolmtp()
{
mailerr("421 4.3.0",
"Memory exhausted");
- exit(EX_TEMPFAIL);
+ sm_exit(EX_TEMPFAIL);
}
}
if (sm_strncasecmp(buf + 5, "to:", 3) != 0 ||
@@ -900,7 +917,7 @@ store(from, inbody)
if (LMTPMode)
{
/* Got a premature EOF -- toss message and exit */
- exit(EX_OK);
+ sm_exit(EX_OK);
}
/* If message not newline terminated, need an extra. */
@@ -1564,7 +1581,7 @@ usage()
{
ExitVal = EX_USAGE;
mailerr(NULL, "usage: mail.local [-7] [-B] [-b] [-d] [-l] [-s] [-f from|-r from] [-h filename] user ...");
- exit(ExitVal);
+ sm_exit(ExitVal);
}
void
diff --git a/contrib/sendmail/makemap/makemap.c b/contrib/sendmail/makemap/makemap.c
index bf3d282..344d5b9 100644
--- a/contrib/sendmail/makemap/makemap.c
+++ b/contrib/sendmail/makemap/makemap.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2002, 2004 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1992 Eric P. Allman. All rights reserved.
* Copyright (c) 1992, 1993
@@ -14,13 +14,13 @@
#include <sm/gen.h>
SM_IDSTR(copyright,
-"@(#) Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.\n\
+"@(#) Copyright (c) 1998-2002, 2004 Sendmail, Inc. and its suppliers.\n\
All rights reserved.\n\
Copyright (c) 1992 Eric P. Allman. All rights reserved.\n\
Copyright (c) 1992, 1993\n\
The Regents of the University of California. All rights reserved.\n")
-SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.176 2002/06/27 23:41:04 gshapiro Exp $")
+SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.177 2004/08/03 23:57:24 ca Exp $")
#include <sys/types.h>
@@ -52,6 +52,8 @@ BITMAP256 DontBlameSendmail;
#define BUFSIZE 1024
#define ISSEP(c) (sep == '\0' ? isascii(c) && isspace(c) : (c) == sep)
+static void usage __P((char *));
+
static void
usage(progname)
char *progname;
diff --git a/contrib/sendmail/smrsh/smrsh.8 b/contrib/sendmail/smrsh/smrsh.8
index 040aa31..f0ed01c 100644
--- a/contrib/sendmail/smrsh/smrsh.8
+++ b/contrib/sendmail/smrsh/smrsh.8
@@ -1,4 +1,4 @@
-.\" Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers.
+.\" Copyright (c) 1998-2004 Sendmail, Inc. and its suppliers.
.\" All rights reserved.
.\" Copyright (c) 1993 Eric P. Allman. All rights reserved.
.\" Copyright (c) 1993
@@ -9,9 +9,9 @@
.\" the sendmail distribution.
.\"
.\"
-.\" $Id: smrsh.8,v 8.20 2003/10/07 18:05:12 ca Exp $
+.\" $Id: smrsh.8,v 8.22 2004/08/06 03:55:35 gshapiro Exp $
.\"
-.TH SMRSH 8 "$Date: 2003/10/07 18:05:12 $"
+.TH SMRSH 8 "$Date: 2004/08/06 03:55:35 $"
.SH NAME
smrsh \- restricted shell for sendmail
.SH SYNOPSIS
@@ -91,7 +91,7 @@ to change the default program directory
.PP
/var/adm/sm.bin \- directory for restricted programs on HP UX and Solaris
.PP
-/usr/libexec/sm.bin \- directory for restricted programs on FreeBSD (>= 3.3)
+/usr/libexec/sm.bin \- directory for restricted programs on FreeBSD (>= 3.3) and DragonFly BSD
.SH SEE ALSO
sendmail(8)
diff --git a/contrib/sendmail/smrsh/smrsh.c b/contrib/sendmail/smrsh/smrsh.c
index 67f6bff..69234b7 100644
--- a/contrib/sendmail/smrsh/smrsh.c
+++ b/contrib/sendmail/smrsh/smrsh.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
+ * Copyright (c) 1998-2004 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1993 Eric P. Allman. All rights reserved.
* Copyright (c) 1993
@@ -15,13 +15,13 @@
#include <sm/gen.h>
SM_IDSTR(copyright,
-"@(#) Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.\n\
+"@(#) Copyright (c) 1998-2004 Sendmail, Inc. and its suppliers.\n\
All rights reserved.\n\
Copyright (c) 1993 Eric P. Allman. All rights reserved.\n\
Copyright (c) 1993\n\
The Regents of the University of California. All rights reserved.\n")
-SM_IDSTR(id, "@(#)$Id: smrsh.c,v 8.63 2003/12/15 17:12:29 ca Exp $")
+SM_IDSTR(id, "@(#)$Id: smrsh.c,v 8.65 2004/08/06 18:54:22 ca Exp $")
/*
** SMRSH -- sendmail restricted shell
@@ -97,6 +97,8 @@ SM_IDSTR(id, "@(#)$Id: smrsh.c,v 8.63 2003/12/15 17:12:29 ca Exp $")
char newcmdbuf[1000];
char *prg, *par;
+static void addcmd __P((char *, bool, size_t));
+
/*
** ADDCMD -- add a string to newcmdbuf, check for overflow
**
@@ -110,7 +112,7 @@ char *prg, *par;
**
*/
-void
+static void
addcmd(s, cmd, len)
char *s;
bool cmd;
diff --git a/contrib/sendmail/src/conf.c b/contrib/sendmail/src/conf.c
index c8989a0..654f52e 100644
--- a/contrib/sendmail/src/conf.c
+++ b/contrib/sendmail/src/conf.c
@@ -14,7 +14,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: conf.c,v 8.1047 2004/07/14 21:54:23 ca Exp $")
+SM_RCSID("@(#)$Id: conf.c,v 8.1052 2004/12/15 22:45:55 ca Exp $")
#include <sendmail/pathnames.h>
#if NEWDB
@@ -36,6 +36,12 @@ static void setupmaps __P((void));
static void setupmailers __P((void));
static void setupqueues __P((void));
static int get_num_procs_online __P((void));
+static int add_hostnames __P((SOCKADDR *));
+
+#if NETINET6 && NEEDSGETIPNODE
+static struct hostent *getipnodebyname __P((char *, int, int, int *));
+static struct hostent *getipnodebyaddr __P((char *, int, int, int *));
+#endif /* NETINET6 && NEEDSGETIPNODE */
/*
@@ -145,6 +151,9 @@ struct prival PrivacyValues[] =
{ "noreceipts", PRIV_NORECEIPTS },
{ "nobodyreturn", PRIV_NOBODYRETN },
{ "goaway", PRIV_GOAWAY },
+#if _FFR_PRIV_NOACTUALRECIPIENT
+ { "noactualrecipient", PRIV_NOACTUALRECIPIENT },
+#endif /* _FFR_PRIV_NOACTUALRECIPIENT */
{ NULL, 0 }
};
@@ -6023,10 +6032,6 @@ char *FFRCompileOptions[] =
/* Allow local (not just TCP) socket connection to server. */
"_FFR_DAEMON_NETUNIX",
#endif /* _FFR_DAEMON_NETUNIX */
-#if _FFR_DEAL_WITH_ERROR_SSL
- /* Deal with SSL errors by recognizing them as EOF. */
- "_FFR_DEAL_WITH_ERROR_SSL",
-#endif /* _FFR_DEAL_WITH_ERROR_SSL */
#if _FFR_DEPRECATE_MAILER_FLAG_I
/* What it says :-) */
"_FFR_DEPRECATE_MAILER_FLAG_I",
@@ -6131,7 +6136,7 @@ char *FFRCompileOptions[] =
** Gurusamy Sarathy of ActiveState
*/
- "_FFR_MAXDATASIZE"
+ "_FFR_MAXDATASIZE",
#endif /* _FFR_MAXDATASIZE */
#if _FFR_MAX_FORWARD_ENTRIES
/* Try to limit number of .forward entries */
@@ -6166,6 +6171,15 @@ char *FFRCompileOptions[] =
/* Disable PIPELINING, delay client if used. */
"_FFR_NO_PIPE",
#endif /* _FFR_NO_PIPE */
+#if _FFR_PRIV_NOACTUALRECIPIENT
+ /*
+ ** PrivacyOptions=noactualrecipient stops sendmail from putting
+ ** X-Actual-Recipient lines in DSNs revealing the actual
+ ** account that addresses map to. Patch from Dan Harkless.
+ */
+
+ "_FFR_PRIV_NOACTUALRECIPIENT"
+#endif /* _FFR_PRIV_NOACTUALRECIPIENT */
#if _FFR_QUEUEDELAY
/* Exponential queue delay; disabled in 8.13 since it isn't used. */
"_FFR_QUEUEDELAY",
@@ -6214,7 +6228,7 @@ char *FFRCompileOptions[] =
#endif /* _FFR_SHM_STATUS */
#if _FFR_SKIP_DOMAINS
/* process every N'th domain instead of every N'th message */
- "_FFR_SKIP_DOMAINS"
+ "_FFR_SKIP_DOMAINS",
#endif /* _FFR_SKIP_DOMAINS */
#if _FFR_SLEEP_USE_SELECT
/* Use select(2) in libsm/clock.c to emulate sleep(2) */
diff --git a/contrib/sendmail/src/headers.c b/contrib/sendmail/src/headers.c
index 59bbf56..ec0d376 100644
--- a/contrib/sendmail/src/headers.c
+++ b/contrib/sendmail/src/headers.c
@@ -14,7 +14,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: headers.c,v 8.286 2004/07/08 17:57:32 ca Exp $")
+SM_RCSID("@(#)$Id: headers.c,v 8.287 2004/12/03 18:29:51 ca Exp $")
static HDR *allocheader __P((char *, char *, int, SM_RPOOL_T *));
static size_t fix_mime_header __P((HDR *, ENVELOPE *));
@@ -1812,7 +1812,7 @@ put_vanilla_header(h, v, mci)
register char *nlp;
register char *obp;
int putflags;
- char obuf[MAXLINE];
+ char obuf[MAXLINE + 256]; /* additional length for h_field */
putflags = PXLF_HEADER;
if (bitnset(M_7BITHDRS, mci->mci_mailer->m_flags))
diff --git a/contrib/sendmail/src/mci.c b/contrib/sendmail/src/mci.c
index 8cdd12f..894c302 100644
--- a/contrib/sendmail/src/mci.c
+++ b/contrib/sendmail/src/mci.c
@@ -14,7 +14,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: mci.c,v 8.211 2003/03/31 17:35:50 ca Exp $")
+SM_RCSID("@(#)$Id: mci.c,v 8.212 2004/08/04 21:11:31 ca Exp $")
#if NETINET || NETINET6
# include <arpa/inet.h>
@@ -1046,7 +1046,7 @@ mci_store_persistent(mci)
int
mci_traverse_persistent(action, pathname)
- int (*action)();
+ int (*action)__P((char *, char *));
char *pathname;
{
struct stat statbuf;
diff --git a/contrib/sendmail/src/savemail.c b/contrib/sendmail/src/savemail.c
index 231382a..857d81f 100644
--- a/contrib/sendmail/src/savemail.c
+++ b/contrib/sendmail/src/savemail.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: savemail.c,v 8.303 2004/01/14 02:56:51 ca Exp $")
+SM_RCSID("@(#)$Id: savemail.c,v 8.304 2004/10/06 21:36:06 ca Exp $")
static void errbody __P((MCI *, ENVELOPE *, char *));
static bool pruneroute __P((char *));
@@ -1182,6 +1182,9 @@ errbody(mci, e, separator)
/* X-Actual-Recipient: -- the real problem address */
if (actual[0] != '\0' &&
q->q_finalrcpt != NULL &&
+#if _FFR_PRIV_NOACTUALRECIPIENT
+ !bitset(PRIV_NOACTUALRECIPIENT, PrivacyFlags) &&
+#endif /* _FFR_PRIV_NOACTUALRECIPIENT */
strcmp(actual, q->q_finalrcpt) != 0)
{
(void) sm_snprintf(buf, sizeof buf,
OpenPOWER on IntegriCloud