SCCS-vsn: usr.sbin/sendmail/src/savemail.c 6.8
-static char sccsid[] = "@(#)savemail.c 6.7 (Berkeley) %G%";
+static char sccsid[] = "@(#)savemail.c 6.8 (Berkeley) %G%";
#endif /* not lint */
# include <sys/types.h>
#endif /* not lint */
# include <sys/types.h>
- if (e->e_errorqueue == NULL)
+ if (e->e_errorqueue == NULL &&
+ strcmp(e->e_from.q_paddr, "<>") != 0)
(void) sendtolist(e->e_from.q_paddr,
(ADDRESS *) NULL,
&e->e_errorqueue, e);
(void) sendtolist(e->e_from.q_paddr,
(ADDRESS *) NULL,
&e->e_errorqueue, e);
(ADDRESS *) NULL,
&e->e_errorqueue, e);
q = e->e_errorqueue;
(ADDRESS *) NULL,
&e->e_errorqueue, e);
q = e->e_errorqueue;
+ if (q == NULL)
+ {
+ /* this is an error-error */
+ state = ESM_USRTMP;
+ break;
+ }
/* fake up an address header for the from person */
expand("\201n", buf, &buf[sizeof buf - 1], e);
/* fake up an address header for the from person */
expand("\201n", buf, &buf[sizeof buf - 1], e);
- ee->e_sender = ee->e_returnpath = newstr(buf);
+ ee->e_returnpath = "<>";
+ ee->e_sender = newstr(buf);
if (parseaddr(buf, &ee->e_from, -1, '\0', e) == NULL)
{
syserr("Can't parse myself!");
if (parseaddr(buf, &ee->e_from, -1, '\0', e) == NULL)
{
syserr("Can't parse myself!");