]> git.pld-linux.org Git - packages/sendmail.git/blame - sendmail-dtelnet.patch
- removed all Group fields translations (oure rpm now can handle translating
[packages/sendmail.git] / sendmail-dtelnet.patch
CommitLineData
ff507bc0
JB
1diff -Nur sendmail-8.12.0.orig/sendmail/conf.c sendmail-8.12.0/sendmail/conf.c
2--- sendmail-8.12.0.orig/sendmail/conf.c Wed Sep 5 00:43:02 2001
3+++ sendmail-8.12.0/sendmail/conf.c Mon Sep 24 10:01:52 2001
4@@ -326,6 +326,8 @@
5 DontLockReadFiles = true;
6 DontProbeInterfaces = DPI_PROBEALL;
c99e5551 7 DoubleBounceAddr = "postmaster";
a20d5b0b
JB
8+ DetectTelnet = 0;
9+ ExitOnTelnet = 1;
c99e5551 10 MaxHeadersLength = MAXHDRSLEN;
8efdcb48 11 MaxForwardEntries = 0;
ff507bc0
JB
12 FastSplit = 1;
13diff -Nur sendmail-8.12.0.orig/sendmail/err.c sendmail-8.12.0/sendmail/err.c
14--- sendmail-8.12.0.orig/sendmail/err.c Wed Sep 5 00:43:03 2001
15+++ sendmail-8.12.0/sendmail/err.c Mon Sep 24 10:02:57 2001
16@@ -909,15 +909,17 @@
17 (void) sm_strlcpyn(eb, spaceleft, 2,
18 shortenstring(to, MAXSHORTSTR), "... ");
c99e5551 19 spaceleft -= strlen(eb);
8efdcb48
JB
20- while (*eb != '\0')
21- *eb++ &= 0177;
dbea50b4
JB
22+ if(!DetectTelnet)
23+ while (*eb != '\0')
24+ *eb++ &= 0177;
c99e5551 25 }
26
27 /* output the message */
ff507bc0 28 (void) sm_vsnprintf(eb, spaceleft, fmt, ap);
c99e5551 29 spaceleft -= strlen(eb);
30- while (*eb != '\0')
8efdcb48 31- *eb++ &= 0177;
dbea50b4
JB
32+ if(!DetectTelnet)
33+ while (*eb != '\0')
34+ *eb++ &= 0177;
c99e5551 35
36 /* output the error code, if any */
37 if (eno != 0)
ff507bc0
JB
38diff -Nur sendmail-8.12.0.orig/sendmail/readcf.c sendmail-8.12.0/sendmail/readcf.c
39--- sendmail-8.12.0.orig/sendmail/readcf.c Wed Sep 5 00:43:05 2001
40+++ sendmail-8.12.0/sendmail/readcf.c Mon Sep 24 10:06:43 2001
41@@ -2039,6 +2039,10 @@
42 # define O_SOFTBOUNCE 0xcf
43 { "SoftBounce", O_SOFTBOUNCE, OI_NONE },
44 #endif /* _FFR_SOFT_BOUNCE */
45+#define O_DETECTTELNET 0xd0
17de0f02 46+ { "DetectTelnet", O_DETECTTELNET, OI_NONE },
ff507bc0
JB
47+#define O_EXITONTELNET 0xd1
48+ { "ExitOnTelnet", O_EXITONTELNET, OI_NONE },
8efdcb48
JB
49 { NULL, '\0', OI_NONE }
50 };
51
ff507bc0 52@@ -3462,6 +3466,14 @@
c99e5551 53 break;
ff507bc0
JB
54 #endif /* _FFR_SOFT_BOUNCE */
55
dbea50b4 56+ case O_DETECTTELNET: /* detect telnet */
c99e5551 57+ DetectTelnet = atobool(val);
58+ break;
59+
dbea50b4 60+ case O_EXITONTELNET: /* exit if telnet detected */
c99e5551 61+ ExitOnTelnet = atobool(val);
62+ break;
ff507bc0 63+
c99e5551 64 default:
65 if (tTd(37, 1))
ff507bc0
JB
66 {
67diff -Nur sendmail-8.12.0.orig/sendmail/sendmail.h sendmail-8.12.0/sendmail/sendmail.h
68--- sendmail-8.12.0.orig/sendmail/sendmail.h Wed Sep 5 00:43:05 2001
69+++ sendmail-8.12.0/sendmail/sendmail.h Mon Sep 24 10:01:52 2001
70@@ -2074,6 +2074,8 @@
71 EXTERN bool WorkAroundBrokenAAAA; /* some nameservers return SERVFAIL on AAAA queries */
8efdcb48 72 EXTERN bool UseErrorsTo; /* use Errors-To: header (back compat) */
8efdcb48 73 EXTERN bool UseNameServer; /* using DNS -- interpret h_errno & MX RRs */
c99e5551 74+EXTERN bool DetectTelnet; /* force telnet detection on/off */
75+EXTERN bool ExitOnTelnet; /* exit if telnet detected */
8efdcb48
JB
76 EXTERN char InetMode; /* default network for daemon mode */
77 EXTERN char OpMode; /* operation mode, see below */
78 EXTERN char SpaceSub; /* substitution for <lwsp> */
ff507bc0
JB
79diff -Nur sendmail-8.12.0.orig/sendmail/srvrsmtp.c sendmail-8.12.0/sendmail/srvrsmtp.c
80--- sendmail-8.12.0.orig/sendmail/srvrsmtp.c Wed Sep 5 00:43:06 2001
81+++ sendmail-8.12.0/sendmail/srvrsmtp.c Mon Sep 24 10:09:38 2001
82@@ -12,6 +12,7 @@
83 */
c99e5551 84
8efdcb48 85 #include <sendmail.h>
c99e5551 86+#include <arpa/telnet.h>
ff507bc0
JB
87 #if MILTER
88 # include <libmilter/mfdef.h>
89 #endif /* MILTER */
17de0f02 90@@ -369,6 +370,9 @@
8efdcb48 91 char *args[MAXSMTPARGS];
c99e5551 92 char inp[MAXLINE];
93 char cmdbuf[MAXLINE];
94+ char telnet_request[] = {IAC, DO, TELOPT_SGA, 0};
95+ char telnet_response[] = {IAC, WILL, TELOPT_SGA, 0};
17de0f02 96+ char *telnet_tmp;
ff507bc0 97 #if SASL
8efdcb48
JB
98 sasl_conn_t *conn;
99 volatile bool sasl_ok;
ff507bc0 100@@ -666,12 +669,8 @@
c99e5551 101 id = strchr(inp, ' ');
102 if (id == NULL)
103 id = &inp[strlen(inp)];
8efdcb48 104- if (p == NULL)
ff507bc0 105- (void) sm_snprintf(cmdbuf, sizeof cmdbuf,
8efdcb48
JB
106- "%s %%.*s ESMTP%%s", greetcode);
107- else
ff507bc0 108- (void) sm_snprintf(cmdbuf, sizeof cmdbuf,
8efdcb48 109- "%s-%%.*s ESMTP%%s", greetcode);
aef0455c 110+ sm_snprintf(cmdbuf, sizeof cmdbuf, "%s%c%%.*s ESMTP%%s%s", greetcode,
dbea50b4
JB
111+ (p == NULL) ? ' ' : '-', DetectTelnet ? telnet_request : "");
112 message(cmdbuf, (int) (id - inp), inp, id);
c99e5551 113
114 /* output remaining lines */
ff507bc0 115@@ -764,6 +763,20 @@
8efdcb48 116 goto doquit;
c99e5551 117 }
ff507bc0 118
c99e5551 119+ if (DetectTelnet && strlen(inp) >= 3)
8efdcb48
JB
120+ for (telnet_tmp = inp; *(telnet_tmp+2); telnet_tmp++)
121+ if (!strncmp(telnet_tmp, telnet_response, 3))
122+ {
123+ sm_syslog(LOG_NOTICE, e->e_id,
124+ "telnet detected from %.100s (%.100s)",
125+ CurSmtpClient, anynet_ntoa(&RealHostAddr));
126+ if (ExitOnTelnet)
127+ {
128+ message("571 Unauthorized usage prohibited");
129+ goto doquit;
130+ }
131+ }
ff507bc0
JB
132+
133 #if _FFR_ADAPTIVE_EOL
134 if (first)
135 {
This page took 0.043641 seconds and 4 git commands to generate.