diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | sink.c | 10 |
2 files changed, 11 insertions, 2 deletions
@@ -74,6 +74,9 @@ fetchmail 6.3.8 (not yet released): Reported by Nico Golde. * If SOCKS support was compiled in, add 'socks' to the feature_options Python list emitted in --configdump. Reported by Rob MacGregor. +* Do not crash with a null pointer dereference when opening the BSMTP file + fails. Improve error checking and reporting. Reported by Reto Schüttel, + Debian Bug#416625. Fix based on a patch by Nico Golde. # DOCUMENTATION: * Extend --mda documentation, discourage use of qmail-inject. @@ -708,6 +708,12 @@ static int open_bsmtp_sink(struct query *ctl, struct msgblk *msg, else sinkfp = fopen(ctl->bsmtp, "a"); + if (!sinkfp || ferror(sinkfp)) { + report(stderr, GT_("BSMTP file open failed: %s\n"), + strerror(errno)); + return(PS_BSMTP); + } + /* see the ap computation under the SMTP branch */ need_anglebrs = (msg->return_path[0] != '<'); fprintf(sinkfp, @@ -747,9 +753,9 @@ static int open_bsmtp_sink(struct query *ctl, struct msgblk *msg, fputs("DATA\r\n", sinkfp); - if (ferror(sinkfp)) + if (fflush(sinkfp) || ferror(sinkfp)) { - report(stderr, GT_("BSMTP file open or preamble write failed\n")); + report(stderr, GT_("BSMTP preamble write failed.\n")); return(PS_BSMTP); } |