- update to 8.16.1

This commit is contained in:
dinoex
2020-07-05 14:13:41 +00:00
parent c4cbb18275
commit 493955c4b8
15 changed files with 67 additions and 844 deletions
+2 -5
View File
@@ -1,8 +1,8 @@
# $FreeBSD$
PORTNAME= sendmail
PORTVERSION= 8.15.2
PORTREVISION= 23
PORTVERSION= 8.16.1
PORTREVISION= 0
CATEGORIES= mail
MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/
DISTNAME= ${PORTNAME}.${PORTVERSION}
@@ -106,9 +106,6 @@ IGNORE= option CYRUSLOOKUP requires option SOCKETMAP
EXTRA_PATCHES+= ${FILESDIR}/cyruslookup.patch
.endif
.endif
.if ${PORT_OPTIONS:MSMTPUTF8}
EXTRA_PATCHES+= ${FILESDIR}/smtputf8.patch
.endif
.if ${PORT_OPTIONS:MTLS}
TLS_SUFFIX?= +tls
CONFLICTS+= sendmail-ldap-8.* sendmail-sasl2-8.*
+3 -2
View File
@@ -1,2 +1,3 @@
SHA256 (sendmail.8.15.2.tar.gz) = 24f94b5fd76705f15897a78932a5f2439a32b1a2fdc35769bb1a5f5d9b4db439
SIZE (sendmail.8.15.2.tar.gz) = 2207417
TIMESTAMP = 1593954526
SHA256 (sendmail.8.16.1.tar.gz) = 7886d5dc4b436b86175f32b5b9c7305c80787749847e2909bf99123ecc4e64ba
SIZE (sendmail.8.16.1.tar.gz) = 2236402
+2 -2
View File
@@ -1,6 +1,6 @@
--- devtools/OS/FreeBSD.orig 2014-03-05 00:59:45 UTC
--- devtools/OS/FreeBSD.orig 2020-05-19 19:54:32 UTC
+++ devtools/OS/FreeBSD
@@ -6,7 +6,7 @@ dnl Place personal settings in devtools/
@@ -6,7 +6,7 @@ dnl Place personal settings in devtools/Site/site.conf
define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
define(`confLIBS', `-lutil')
+3 -3
View File
@@ -1,9 +1,9 @@
--- sendmail/Makefile.m4.orig 2015-06-19 12:59:29 UTC
--- sendmail/Makefile.m4.orig 2020-06-08 08:35:03 UTC
+++ sendmail/Makefile.m4
@@ -7,14 +7,14 @@ bldPRODUCT_START(`executable', `sendmail
@@ -7,14 +7,14 @@ bldPRODUCT_START(`executable', `sendmail')
define(`bldBIN_TYPE', `G')
define(`bldINSTALL_DIR', `')
define(`bldSOURCES', `main.c alias.c arpadate.c bf.c collect.c conf.c control.c convtime.c daemon.c deliver.c domain.c envelope.c err.c headers.c macro.c map.c mci.c milter.c mime.c parseaddr.c queue.c ratectrl.c readcf.c recipient.c sasl.c savemail.c sfsasl.c shmticklib.c sm_resolve.c srvrsmtp.c stab.c stats.c sysexits.c timers.c tls.c trace.c udb.c usersmtp.c util.c version.c ')
define(`bldSOURCES', `main.c alias.c arpadate.c bf.c collect.c conf.c control.c convtime.c daemon.c deliver.c domain.c envelope.c err.c headers.c macro.c map.c mci.c milter.c mime.c parseaddr.c queue.c ratectrl.c readcf.c recipient.c sasl.c savemail.c sfsasl.c shmticklib.c sm_resolve.c srvrsmtp.c stab.c stats.c sysexits.c timers.c tlsh.c tls.c trace.c udb.c usersmtp.c util.c version.c ')
+APPENDDEF(`bldSOURCES',`blacklist.c ')
PREPENDDEF(`confENVDEF', `confMAPDEF')
bldPUSH_SMLIB(`sm')
+2 -2
View File
@@ -1,6 +1,6 @@
--- cf/m4/cfhead.m4.orig 2015-02-28 00:20:38 UTC
--- cf/m4/cfhead.m4.orig 2020-05-19 19:54:31 UTC
+++ cf/m4/cfhead.m4
@@ -269,7 +269,8 @@ define(`_REC_AUTH_', `$.$?{auth_type}(au
@@ -278,7 +278,8 @@ define(`_REC_AUTH_', `$.$?{auth_type}(authenticated')
define(`_REC_FULL_AUTH_', `$.$?{auth_type}(user=${auth_authen} $?{auth_author}author=${auth_author} $.mech=${auth_type}')
define(`_REC_HDR_', `$?sfrom $s $.$?_($?s$|from $.$_)')
define(`_REC_END_', `for $u; $|;
+6 -6
View File
@@ -1,6 +1,6 @@
--- mail.local/mail.local.c.orig 2014-06-12 17:30:47 UTC
--- mail.local/mail.local.c.orig 2020-04-30 11:52:48 UTC
+++ mail.local/mail.local.c
@@ -153,6 +153,8 @@ int ExitVal = EX_OK; /* sysexits.h erro
@@ -153,6 +153,8 @@ int ExitVal = EX_OK; /* sysexits.h error value. */
bool HoldErrs = false; /* Hold errors in ErrBuf */
bool LMTPMode = false;
bool BounceQuota = false; /* permanent error when over quota */
@@ -19,10 +19,10 @@
# if _FFR_SPOOL_PATH
- while ((ch = getopt(argc, argv, "7bdD:f:h:r:lp:")) != -1)
+ while ((ch = getopt(argc, argv, "7bBdD:f:h:r:lsp:")) != -1)
# else /* _FFR_SPOOL_PATH */
# else
- while ((ch = getopt(argc, argv, "7bdD:f:h:r:l")) != -1)
+ while ((ch = getopt(argc, argv, "7bBdD:f:h:r:ls")) != -1)
# endif /* _FFR_SPOOL_PATH */
# endif
#endif /* HASHSPOOL */
{
@@ -249,6 +251,10 @@ main(argc, argv)
@@ -89,9 +89,9 @@
# if _FFR_SPOOL_PATH
- mailerr(NULL, "usage: mail.local [-7] [-b] [-d] [-l] [-f from|-r from] [-h filename] [-p path] user ...");
+ mailerr(NULL, "usage: mail.local [-7] [-b] [-B] [-d] [-l] [-s] [-f from|-r from] [-h filename] [-p path] user ...");
# else /* _FFR_SPOOL_PATH */
# else
- mailerr(NULL, "usage: mail.local [-7] [-b] [-d] [-l] [-f from|-r from] [-h filename] user ...");
+ mailerr(NULL, "usage: mail.local [-7] [-b] [-B] [-d] [-l] [-s] [-f from|-r from] [-h filename] user ...");
# endif /* _FFR_SPOOL_PATH */
# endif
sm_exit(ExitVal);
}
+10 -10
View File
@@ -1,26 +1,26 @@
--- sendmail/readcf.c.orig 2015-06-17 16:51:58 UTC
--- sendmail/readcf.c.orig 2020-06-02 09:41:43 UTC
+++ sendmail/readcf.c
@@ -2910,6 +2910,10 @@ static struct optioninfo
@@ -2979,6 +2979,10 @@ static struct optioninfo
{ "SetCertAltnames", O_CHECKALTNAMES, OI_NONE },
#endif
#define O_USECOMPRESSEDIPV6ADDRESSES 0xec
{ "UseCompressedIPv6Addresses", O_USECOMPRESSEDIPV6ADDRESSES, OI_NONE },
+#if USE_BLACKLIST
+# define O_BLACKLIST 0xf2
+ { "UseBlacklist", O_BLACKLIST, OI_NONE },
+#endif
{ NULL, '\0', OI_NONE }
};
@@ -4540,6 +4544,12 @@ setoption(opt, val, safe, sticky, e)
UseCompressedIPv6Addresses = atobool(val);
break;
@@ -4678,6 +4682,12 @@ setoption(opt, val, safe, sticky, e)
SetCertAltnames = atobool(val);
break;
# endif
+
+#if USE_BLACKLIST
+ case O_BLACKLIST:
+ UseBlacklist = atobool(val);
+ break;
+#endif
+
default:
if (tTd(37, 1))
{
+8 -8
View File
@@ -1,7 +1,7 @@
--- sendmail/sendmail.h.orig 2015-06-19 12:59:29 UTC
--- sendmail/sendmail.h.orig 2020-07-02 05:00:37 UTC
+++ sendmail/sendmail.h
@@ -57,6 +57,10 @@ SM_UNUSED(static char SmailId[]) = "@(#)
#endif /* _DEFINE */
@@ -63,6 +63,10 @@ SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.
#endif
#include "bf.h"
+#if USE_BLACKLIST
@@ -11,14 +11,14 @@
#include "timers.h"
#include <sm/exc.h>
#include <sm/heap.h>
@@ -2544,6 +2548,10 @@ EXTERN int ConnectionRateWindowSize;
EXTERN bool SSLEngineInitialized;
#endif /* STARTTLS && USE_OPENSSL_ENGINE */
@@ -2575,6 +2579,10 @@ EXTERN int Hacks; /* bit field of run-time enabled "ha
#endif
EXTERN int ConnectionRateWindowSize;
+
+#if USE_BLACKLIST
+EXTERN bool UseBlacklist;
+#endif
+
/*
** Declarations of useful functions
*/
-14
View File
@@ -1,14 +0,0 @@
--- include/sm/os/sm_os_freebsd.h.orig 2014-03-05 00:59:45 UTC
+++ include/sm/os/sm_os_freebsd.h
@@ -34,7 +34,11 @@
# define SM_CONF_SHM 1
#endif /* SM_CONF_SHM */
#ifndef SM_CONF_SEM
+#if __FreeBSD_version < 1200059
# define SM_CONF_SEM 1
+#else
+# define SM_CONF_SEM 2
+#endif
#endif /* SM_CONF_SEM */
#ifndef SM_CONF_MSG
# define SM_CONF_MSG 1
+2 -2
View File
@@ -1,4 +1,4 @@
--- smrsh/smrsh.8.orig 2014-03-05 00:59:45 UTC
--- smrsh/smrsh.8.orig 2020-05-19 19:54:33 UTC
+++ smrsh/smrsh.8
@@ -39,7 +39,7 @@ Briefly,
.I smrsh
@@ -9,7 +9,7 @@
allowing the system administrator to choose the set of acceptable commands,
and to the shell builtin commands ``exec'', ``exit'', and ``echo''.
It also rejects any commands with the characters
@@ -50,13 +50,12 @@ It allows ``||'' and ``&&'' to enable co
@@ -50,13 +50,12 @@ It allows ``||'' and ``&&'' to enable commands like:
``"|exec /usr/local/bin/filter || exit 75"''
.PP
Initial pathnames on programs are stripped,
+25 -25
View File
@@ -1,16 +1,16 @@
--- sendmail/srvrsmtp.c.orig 2015-03-18 11:47:12 UTC
--- sendmail/srvrsmtp.c.orig 2020-06-08 08:35:03 UTC
+++ sendmail/srvrsmtp.c
@@ -831,6 +831,9 @@ smtp(nullserver, d_flags, e)
@@ -906,6 +906,9 @@ smtp(nullserver, d_flags, e)
#if _FFR_BADRCPT_SHUTDOWN
int n_badrcpts_adj;
#endif /* _FFR_BADRCPT_SHUTDOWN */
#endif
+#ifdef USE_BLACKLIST
+ int saved_bl_fd;
+#endif
RESET_AUTH_FAIL_LOG_USER;
SevenBitInput_Saved = SevenBitInput;
smtp.sm_nrcpts = 0;
@@ -1328,6 +1331,7 @@ smtp(nullserver, d_flags, e)
@@ -1408,6 +1411,7 @@ smtp(nullserver, d_flags, e)
(int) tp.tv_sec +
(tp.tv_usec >= 500000 ? 1 : 0)
);
@@ -18,7 +18,7 @@
}
}
}
@@ -1421,6 +1425,10 @@ smtp(nullserver, d_flags, e)
@@ -1510,6 +1514,10 @@ smtp(nullserver, d_flags, e)
SmtpPhase = "server cmd read";
sm_setproctitle(true, e, "server %s cmd read", CurSmtpClient);
@@ -29,19 +29,19 @@
/* handle errors */
if (sm_io_error(OutChannel) ||
(p = sfgets(inp, sizeof(inp), InChannel,
@@ -1721,8 +1729,11 @@ smtp(nullserver, d_flags, e)
}
else
{
+ int fd;
/* not SASL_OK or SASL_CONT */
message("535 5.7.0 authentication failed");
+ fd = sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL);
+ BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, fd, "AUTH FAIL");
if (LogLevel > 9)
sm_syslog(LOG_WARNING, e->e_id,
"AUTH failure (%s): %s (%d) %s, relay=%.100s",
@@ -1867,6 +1878,9 @@ smtp(nullserver, d_flags, e)
@@ -1823,8 +1831,11 @@ smtp(nullserver, d_flags, e)
#define LOGAUTHFAIL \
do \
{ \
+ int fd; \
SET_AUTH_USER_CONDITIONALLY \
message("535 5.7.0 authentication failed"); \
+ fd = sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL); \
+ BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, fd, "AUTH FAIL"); \
if (LogLevel >= 9) \
sm_syslog(LOG_WARNING, e->e_id, \
"AUTH failure (%s): %s (%d) %s%s%.*s, relay=%.100s", \
@@ -1974,6 +1985,9 @@ smtp(nullserver, d_flags, e)
DELAY_CONN("AUTH");
if (!sasl_ok || n_mechs <= 0)
{
@@ -51,7 +51,7 @@
message("503 5.3.3 AUTH not available");
break;
}
@@ -3462,10 +3476,17 @@ doquit:
@@ -3602,10 +3616,17 @@ doquit:
** timeouts for the same connection.
*/
@@ -69,7 +69,7 @@
if (tTd(93, 100))
{
/* return to handle next connection */
@@ -3523,7 +3544,10 @@ doquit:
@@ -3663,7 +3684,10 @@ doquit:
#if MAXBADCOMMANDS > 0
if (++n_badcmds > MAXBADCOMMANDS)
{
@@ -80,13 +80,13 @@
message("421 4.7.0 %s Too many bad commands; closing connection",
MyHostName);
@@ -3575,6 +3599,9 @@ doquit:
@@ -3714,6 +3738,9 @@ doquit:
}
#if SASL
}
#endif /* SASL */
+#endif
+#ifdef USE_BLACKLIST
+ close(saved_bl_fd);
+#endif
#endif
}
SM_EXCEPT(exc, "[!F]*")
{
-161
View File
@@ -1,161 +0,0 @@
--- sendmail/tls.c.orig 2015-06-20 01:37:28 UTC
+++ sendmail/tls.c
@@ -16,6 +16,9 @@ SM_RCSID("@(#)$Id: tls.c,v 8.127 2013-11-27 02:51:11 g
# include <openssl/err.h>
# include <openssl/bio.h>
# include <openssl/pem.h>
+# if !NO_DH
+# include <openssl/dh.h>
+# endif /* !NO_DH */
# ifndef HASURANDOMDEV
# include <openssl/rand.h>
# endif /* ! HASURANDOMDEV */
@@ -44,6 +47,23 @@ static bool tls_safe_f __P((char *, long, bool));
static int tls_verify_log __P((int, X509_STORE_CTX *, const char *));
# if !NO_DH
+# if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100001L || \
+ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
+static int
+DH_set0_pqg(dh, p, q, g)
+ DH *dh;
+ BIGNUM *p;
+ BIGNUM *q;
+ BIGNUM *g;
+{
+ dh->p=p;
+ if (q != NULL)
+ dh->q=q;
+ dh->g=g;
+ return 1; /* success */
+}
+# endif /* !defined() || OPENSSL_VERSION_NUMBER < 0x00907000L */
+
static DH *get_dh512 __P((void));
static unsigned char dh512_p[] =
@@ -64,13 +84,17 @@ static DH *
get_dh512()
{
DH *dh = NULL;
+ BIGNUM *dhp_bn, *dhg_bn;
if ((dh = DH_new()) == NULL)
return NULL;
- dh->p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
- dh->g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
- if ((dh->p == NULL) || (dh->g == NULL))
+ dhp_bn = BN_bin2bn(dh512_p, sizeof (dh512_p), NULL);
+ dhg_bn = BN_bin2bn(dh512_g, sizeof (dh512_g), NULL);
+ if ((dhp_bn == NULL) || (dhg_bn == NULL) || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn))
+ {
+ DH_free(dh);
return NULL;
+ }
return dh;
}
@@ -117,15 +141,16 @@ get_dh2048()
};
static unsigned char dh2048_g[]={ 0x02, };
DH *dh;
+ BIGNUM *dhp_bn, *dhg_bn;
if ((dh=DH_new()) == NULL)
return(NULL);
- dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
- dh->g=BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL);
- if ((dh->p == NULL) || (dh->g == NULL))
+ dhp_bn = BN_bin2bn(dh2048_p, sizeof (dh2048_p), NULL);
+ dhg_bn = BN_bin2bn(dh2048_g, sizeof (dh2048_g), NULL);
+ if ((dhp_bn == NULL) || (dhg_bn == NULL) || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn))
{
DH_free(dh);
- return(NULL);
+ return NULL;
}
return(dh);
}
@@ -708,6 +733,29 @@ load_certkey(ssl, srv, certfile, keyfile)
static char server_session_id_context[] = "sendmail8";
+# if !TLS_NO_RSA
+static RSA *
+sm_RSA_generate_key(num, e)
+ int num;
+ unsigned long e;
+{
+ RSA *rsa = NULL;
+ BIGNUM *bn_rsa_r4;
+
+ bn_rsa_r4 = BN_new();
+ if ((bn_rsa_r4 != NULL) && BN_set_word(bn_rsa_r4, e) && (rsa = RSA_new()) != NULL)
+ {
+ if (!RSA_generate_key_ex(rsa, num, bn_rsa_r4, NULL))
+ {
+ RSA_free(rsa);
+ rsa = NULL;
+ }
+ }
+ BN_free(bn_rsa_r4);
+ return rsa;
+}
+# endif /* !TLS_NO_RSA */
+
/* 0.9.8a and b have a problem with SSL_OP_TLS_BLOCK_PADDING_BUG */
#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)
# define SM_SSL_OP_TLS_BLOCK_PADDING_BUG 1
@@ -926,7 +974,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cac
{
/* get a pointer to the current certificate validation store */
store = SSL_CTX_get_cert_store(*ctx); /* does not fail */
- crl_file = BIO_new(BIO_s_file_internal());
+ crl_file = BIO_new(BIO_s_file());
if (crl_file != NULL)
{
if (BIO_read_filename(crl_file, CRLFile) >= 0)
@@ -1003,8 +1051,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cac
if (bitset(TLS_I_RSA_TMP, req)
# if SM_CONF_SHM
&& ShmId != SM_SHM_NO_ID &&
- (rsa_tmp = RSA_generate_key(RSA_KEYLENGTH, RSA_F4, NULL,
- NULL)) == NULL
+ (rsa_tmp = sm_RSA_generate_key(RSA_KEYLENGTH, RSA_F4)) == NULL
# else /* SM_CONF_SHM */
&& 0 /* no shared memory: no need to generate key now */
# endif /* SM_CONF_SHM */
@@ -1209,9 +1256,10 @@ inittls(ctx, req, options, srv, certfile, keyfile, cac
if (tTd(96, 2))
sm_dprintf("inittls: Generating %d bit DH parameters\n", bits);
+ dsa=DSA_new();
/* this takes a while! */
- dsa = DSA_generate_parameters(bits, NULL, 0, NULL,
- NULL, 0, NULL);
+ (void)DSA_generate_parameters_ex(dsa, bits, NULL, 0,
+ NULL, NULL, NULL);
dh = DSA_dup_DH(dsa);
DSA_free(dsa);
}
@@ -1744,7 +1792,7 @@ tmp_rsa_key(s, export, keylength)
if (rsa_tmp != NULL)
RSA_free(rsa_tmp);
- rsa_tmp = RSA_generate_key(RSA_KEYLENGTH, RSA_F4, NULL, NULL);
+ rsa_tmp = sm_RSA_generate_key(RSA_KEYLENGTH, RSA_F4);
if (rsa_tmp == NULL)
{
if (LogLevel > 0)
@@ -1971,9 +2019,9 @@ x509_verify_cb(ok, ctx)
{
if (LogLevel > 13)
tls_verify_log(ok, ctx, "x509");
- if (ctx->error == X509_V_ERR_UNABLE_TO_GET_CRL)
+ if (X509_STORE_CTX_get_error(ctx) == X509_V_ERR_UNABLE_TO_GET_CRL)
{
- ctx->error = 0;
+ X509_STORE_CTX_set_error(ctx, 0);
return 1; /* override it */
}
}
+3 -3
View File
@@ -1,6 +1,6 @@
--- sendmail/usersmtp.c.orig 2014-12-05 15:42:28 UTC
--- sendmail/usersmtp.c.orig 2020-06-03 05:48:46 UTC
+++ sendmail/usersmtp.c
@@ -1825,6 +1825,9 @@ attemptauth(m, mci, e, sai)
@@ -1842,6 +1842,9 @@ attemptauth(m, mci, e, sai)
if (saslresult != SASL_OK && saslresult != SASL_CONTINUE)
{
@@ -10,7 +10,7 @@
if (tTd(95, 5))
sm_dprintf("AUTH FAIL=%s (%d)\n",
sasl_errstring(saslresult, NULL, NULL),
@@ -1970,9 +1973,11 @@ smtpauth(m, mci, e)
@@ -1987,9 +1990,11 @@ smtpauth(m, mci, e)
do
{
result = attemptauth(m, mci, e, &(mci->mci_sai));
+1 -1
View File
@@ -1,2 +1,2 @@
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -D_FFR_TLS_EC -D_FFR_TLS_SE_OPTS')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -DTLS_EC')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
File diff suppressed because it is too large Load Diff