aboutsummaryrefslogtreecommitdiffstats
path: root/driver.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1998-07-14 13:45:37 +0000
committerEric S. Raymond <esr@thyrsus.com>1998-07-14 13:45:37 +0000
commit8b7d76c3679d48ea08ad75ff839edb17e6195acd (patch)
tree9f14bdaa8e1df4037fe8a9ebd4ba6133c3448e0d /driver.c
parentdf80d21fdc13f93d9f5cc39a3525dd8698988a83 (diff)
downloadfetchmail-8b7d76c3679d48ea08ad75ff839edb17e6195acd.tar.gz
fetchmail-8b7d76c3679d48ea08ad75ff839edb17e6195acd.tar.bz2
fetchmail-8b7d76c3679d48ea08ad75ff839edb17e6195acd.zip
Added nosyslog.
svn path=/trunk/; revision=1967
Diffstat (limited to 'driver.c')
-rw-r--r--driver.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/driver.c b/driver.c
index cd632afd..220ce41a 100644
--- a/driver.c
+++ b/driver.c
@@ -1630,7 +1630,7 @@ int len; /* length of message */
flag forward; /* TRUE to forward */
{
int linelen;
- unsigned char buf[MSGBUFSIZE+1];
+ unsigned char buf[MSGBUFSIZE+4];
unsigned char *inbufp = buf;
flag issoftline = FALSE;
@@ -1638,7 +1638,7 @@ flag forward; /* TRUE to forward */
while (protocol->delimited || len > 0)
{
set_timeout(ctl->server.timeout);
- if ((linelen = SockRead(sock, inbufp, sizeof(buf)-1-(inbufp-buf)))==-1)
+ if ((linelen = SockRead(sock, inbufp, sizeof(buf)-4-(inbufp-buf)))==-1)
{
set_timeout(0);
if (ctl->mda)
@@ -1694,9 +1694,16 @@ flag forward; /* TRUE to forward */
/* ship out the text line */
if (forward && (!issoftline))
{
- int n = stuffline(ctl, buf);
+ int n;
inbufp = buf;
+ /* guard against very long lines */
+ buf[MSGBUFSIZE+1] = '\r';
+ buf[MSGBUFSIZE+2] = '\n';
+ buf[MSGBUFSIZE+3] = '\0';
+
+ n = stuffline(ctl, buf);
+
if (n < 0)
{
error(0, errno, "writing message text");