Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!aplcen!haven!mimsy!fnord.umiacs.umd.edu!steve From: steve@fnord.umiacs.umd.edu (Steve D. Miller) Newsgroups: comp.mail.sendmail Subject: Re: sendmail 5.64 dumps core Message-ID: <25407@mimsy.umd.edu> Date: 10 Jul 90 17:35:00 GMT References: <7744@fy.sei.cmu.edu> Sender: news@mimsy.umd.edu Reply-To: steve@umiacs.umd.edu (Steve D. Miller) Distribution: na Organization: UMIACS, Univ. of Maryland, College Park, MD 20742 Lines: 34 I'm pretty sure I've seen this problem before. I think that what happens is that the connection craps out after the MAIL FROM command. The first RCPT TO notes that the connection has gone, and closes the socket. If there's multiple recipients at that same host, however, sendmail tries to do a second RCPT TO, and ends up calling reply(), which does a fflush on SmtpOut, which is sort of a null pointer... This is the way I fixed this problem here, though I'm not convinced that it's the best way to do so. This change is to usersmtp.c. -Steve Spoken: Steve Miller Domain: steve@umiacs.umd.edu UUCP: uunet!mimsy!steve Phone: +1-301-454-1808 USPS: UMIACS, Univ. of Maryland, College Park, MD 20742 *** /tmp/,RCSt1a03798 Tue Jul 10 13:17:47 1990 --- /tmp/,RCSt2a03798 Tue Jul 10 13:17:47 1990 *************** *** 241,246 **** --- 241,251 ---- register int r; extern char *remotename(); + /* if the connection is closed, don't bother */ + if (SmtpOut == NULL || SmtpIn == NULL) { + errno = EBADF; /* guess */ + return(EX_TEMPFAIL); + } smtpmessage("RCPT To:<%s>", m, remotename(to->q_user, m, FALSE, TRUE)); SmtpPhase = "RCPT wait"; -- Spoken: Steve Miller Domain: steve@umiacs.umd.edu UUCP: uunet!mimsy!steve Phone: +1-301-454-1808 USPS: UMIACS, Univ. of Maryland, College Park, MD 20742