1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
Index: contrib/sendmail/src/conf.c
===================================================================
RCS file: /home/ncvs/src/contrib/sendmail/src/conf.c,v
retrieving revision 1.5.2.11
retrieving revision 1.5.2.11.2.1
diff -c -r1.5.2.11 -r1.5.2.11.2.1
*** contrib/sendmail/src/conf.c 3 Sep 2002 01:50:15 -0000 1.5.2.11
--- contrib/sendmail/src/conf.c 29 Mar 2003 20:13:03 -0000 1.5.2.11.2.1
***************
*** 332,337 ****
--- 332,339 ----
DontProbeInterfaces = DPI_PROBEALL;
DoubleBounceAddr = "postmaster";
MaxHeadersLength = MAXHDRSLEN;
+ MaxMimeHeaderLength = MAXLINE;
+ MaxMimeFieldLength = MaxMimeHeaderLength / 2;
MaxForwardEntries = 0;
FastSplit = 1;
#if SASL
Index: contrib/sendmail/src/parseaddr.c
===================================================================
RCS file: /home/ncvs/src/contrib/sendmail/src/parseaddr.c,v
retrieving revision 1.1.1.2.6.10.2.1
retrieving revision 1.1.1.2.6.10.2.2
diff -c -r1.1.1.2.6.10.2.1 -r1.1.1.2.6.10.2.2
*** contrib/sendmail/src/parseaddr.c 3 Mar 2003 17:20:23 -0000 1.1.1.2.6.10.2.1
--- contrib/sendmail/src/parseaddr.c 29 Mar 2003 20:13:04 -0000 1.1.1.2.6.10.2.2
***************
*** 608,614 ****
};
! #define NOCHAR -1 /* signal nothing in lookahead token */
char **
prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
--- 608,614 ----
};
! #define NOCHAR (-1) /* signal nothing in lookahead token */
char **
prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab)
***************
*** 694,699 ****
--- 694,700 ----
/* see if there is room */
if (q >= &pvpbuf[pvpbsize - 5])
{
+ addrtoolong:
usrerr("553 5.1.1 Address too long");
if (strlen(addr) > MAXNAME)
addr[MAXNAME] = '\0';
***************
*** 705,715 ****
}
/* squirrel it away */
*q++ = c;
}
/* read a new input character */
! c = *p++;
if (c == '\0')
{
/* diagnose and patch up bad syntax */
--- 706,720 ----
}
/* squirrel it away */
+ #if !ALLOW_255
+ if ((char) c == (char) -1 && !tTd(82, 101))
+ c &= 0x7f;
+ #endif /* !ALLOW_255 */
*q++ = c;
}
/* read a new input character */
! c = (*p++) & 0x00ff;
if (c == '\0')
{
/* diagnose and patch up bad syntax */
***************
*** 764,769 ****
--- 769,777 ----
}
else if (c != '!' || state == QST)
{
+ /* see if there is room */
+ if (q >= &pvpbuf[pvpbsize - 5])
+ goto addrtoolong;
*q++ = '\\';
continue;
}
***************
*** 849,854 ****
--- 857,865 ----
/* new token */
if (tok != q)
{
+ /* see if there is room */
+ if (q >= &pvpbuf[pvpbsize - 5])
+ goto addrtoolong;
*q++ = '\0';
if (tTd(22, 36))
{
|