Fixed segfault created with previous update
This commit is contained in:
parent
292ab81db2
commit
12702344eb
@ -2,7 +2,7 @@
|
|||||||
*
|
*
|
||||||
* File ..................: mbfido/ftn2rfc.c
|
* File ..................: mbfido/ftn2rfc.c
|
||||||
* Purpose ...............: Gate netmail->email or echomail->news
|
* Purpose ...............: Gate netmail->email or echomail->news
|
||||||
* Last modification date : 29-Oct-2001
|
* Last modification date : 30-Oct-2001
|
||||||
*
|
*
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
* Copyright (C) 1997-2001
|
* Copyright (C) 1997-2001
|
||||||
@ -290,8 +290,6 @@ void Send(int newsmode, char *outstr)
|
|||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(outstr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -819,7 +817,6 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
p=hdr((char *)"RFC-Newsgroups",kmsg);
|
p=hdr((char *)"RFC-Newsgroups",kmsg);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
@ -849,7 +846,7 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
sprintf(temp,"Distribution: %s\n",distribution);
|
sprintf(temp,"Distribution: %s\n",distribution);
|
||||||
Send(newsmode, temp);
|
Send(newsmode, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = hdr((char *)"Comment-To",msg);
|
p = hdr((char *)"Comment-To",msg);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
p=hdr((char *)"X-Comment-To",msg);
|
p=hdr((char *)"X-Comment-To",msg);
|
||||||
@ -986,15 +983,15 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
|
|
||||||
if ((p = hdr((char *)"From",msg))) {
|
if ((p = hdr((char *)"From",msg))) {
|
||||||
sprintf(temp, "From:%s", hdrconv(p,outcode,incode));
|
sprintf(temp, "From:%s", hdrconv(p,outcode,incode));
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
} else if ((p = hdr((char *)"RFC-From",kmsg))) {
|
} else if ((p = hdr((char *)"RFC-From",kmsg))) {
|
||||||
Syslog('m', "b");
|
Syslog('m', "b");
|
||||||
sprintf(temp, "From: %s", hdrconv(p,outcode,incode));
|
sprintf(temp, "From: %s", hdrconv(p,outcode,incode));
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
} else if ((p = hdr((char *)"From\n",kmsg))) {
|
} else if ((p = hdr((char *)"From\n",kmsg))) {
|
||||||
Syslog('m', "c");
|
Syslog('m', "c");
|
||||||
sprintf(temp, "From: %s", hdrconv(p,outcode,incode));
|
sprintf(temp, "From: %s", hdrconv(p,outcode,incode));
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
} else if ((p = hdr((char *)"X-PcBoard-FROM",msg))) {
|
} else if ((p = hdr((char *)"X-PcBoard-FROM",msg))) {
|
||||||
if (f->name) {
|
if (f->name) {
|
||||||
while (isspace(*p))
|
while (isspace(*p))
|
||||||
@ -1004,7 +1001,7 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
} else {
|
} else {
|
||||||
sprintf(temp,"From:%s\n", p);
|
sprintf(temp,"From:%s\n", p);
|
||||||
}
|
}
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
} else if ((hdr((char *)"REPLYADDR",kmsg)) && (p=xstrcpy(hdr((char *)"REPLYADDR",kmsg)))) {
|
} else if ((hdr((char *)"REPLYADDR",kmsg)) && (p=xstrcpy(hdr((char *)"REPLYADDR",kmsg)))) {
|
||||||
if (*(r=p+strlen(p)-1) == '\n')
|
if (*(r=p+strlen(p)-1) == '\n')
|
||||||
*(r--)='\0';
|
*(r--)='\0';
|
||||||
@ -1030,16 +1027,16 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
}
|
}
|
||||||
Syslog('m', "d");
|
Syslog('m', "d");
|
||||||
sprintf(temp,"From: \"%s\" <%s>\n",hdrconv(l,outcode,incode),p);
|
sprintf(temp,"From: \"%s\" <%s>\n",hdrconv(l,outcode,incode),p);
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
free(q);
|
free(q);
|
||||||
} else if (f->name) {
|
} else if (f->name) {
|
||||||
Syslog('m', "e");
|
Syslog('m', "e");
|
||||||
sprintf(temp,"From: \"%s\" <%s>\n",hdrconv(f->name,outcode,incode),p);
|
sprintf(temp,"From: \"%s\" <%s>\n",hdrconv(f->name,outcode,incode),p);
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
} else {
|
} else {
|
||||||
Syslog('m', "f");
|
Syslog('m', "f");
|
||||||
sprintf(temp,"From: %s\n",p);
|
sprintf(temp,"From: %s\n",p);
|
||||||
Send(FALSE, temp);
|
Send(newsmode, temp);
|
||||||
}
|
}
|
||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
@ -1542,14 +1539,18 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
Syslog('M', "Start sending message body");
|
Syslog('M', "Start sending message body");
|
||||||
while (fgets(buf,sizeof(buf)-1,fp) && pass) {
|
while (fgets(buf,sizeof(buf)-1,fp) && pass) {
|
||||||
if (first) {
|
if (first) {
|
||||||
Send(newsmode, (char *)"\n");
|
p = xstrcpy((char *)"\n");
|
||||||
|
Send(newsmode, p);
|
||||||
|
free(p);
|
||||||
first = FALSE;
|
first = FALSE;
|
||||||
|
|
||||||
/* FIXME: Maybe scan now for repeating headers and drop them as they will appear in the message text */
|
/* FIXME: Maybe scan now for repeating headers and drop them as they will appear in the message text */
|
||||||
|
|
||||||
if ((p=hdr((char *)"X-Body-Start",msg))) {
|
if ((p=hdr((char *)"X-Body-Start",msg))) {
|
||||||
lines++;
|
lines++;
|
||||||
Send(newsmode, strkconv(p, outcode, incode));
|
q = xstrcpy(strkconv(p, outcode, incode));
|
||||||
|
Send(newsmode, q);
|
||||||
|
free(q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1577,9 +1578,11 @@ int ftn2rfc(faddr *f, faddr *t, char *subj, char *origline, time_t mdate, int fl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strncmp(buf, ".\r\n", 3))
|
if (strncmp(buf, ".\r\n", 3))
|
||||||
Send(newsmode, strkconv(buf, outcode, incode));
|
q = xstrcpy(strkconv(buf, outcode, incode));
|
||||||
else
|
else
|
||||||
Send(newsmode, (char *)" .\n");
|
q = xstrcpy((char *)" .\n");
|
||||||
|
Send(newsmode, q);
|
||||||
|
free(q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Syslog('M', "End sending message body");
|
Syslog('M', "End sending message body");
|
||||||
|
Reference in New Issue
Block a user