SCCS-vsn: usr.sbin/sendmail/src/recipient.c 6.23
-static char sccsid[] = "@(#)recipient.c 6.22 (Berkeley) %G%";
+static char sccsid[] = "@(#)recipient.c 6.23 (Berkeley) %G%";
#endif /* not lint */
# include "sendmail.h"
#endif /* not lint */
# include "sendmail.h"
a->q_flags |= QDONTSEND;
if (a->q_alias == NULL)
{
a->q_flags |= QDONTSEND;
if (a->q_alias == NULL)
{
- a->q_flags |= QBADADDR;
+ a->q_flags |= QDONTSEND|QBADADDR;
usrerr("550 Cannot mail directly to :include:s");
}
else
usrerr("550 Cannot mail directly to :include:s");
}
else
else if ((stat(buf, &stb) >= 0) ? (!writable(&stb)) :
(*p = '\0', safefile(buf, getruid(), S_IWRITE|S_IEXEC) != 0))
{
else if ((stat(buf, &stb) >= 0) ? (!writable(&stb)) :
(*p = '\0', safefile(buf, getruid(), S_IWRITE|S_IEXEC) != 0))
{
- a->q_flags |= QBADADDR;
+ a->q_flags |= QDONTSEND|QBADADDR;
giveresponse(EX_CANTCREAT, m, NULL, e);
}
}
giveresponse(EX_CANTCREAT, m, NULL, e);
}
}
pw = finduser(buf, &fuzzy);
if (pw == NULL)
{
pw = finduser(buf, &fuzzy);
if (pw == NULL)
{
- a->q_flags |= QBADADDR;
+ a->q_flags |= QDONTSEND|QBADADDR;
giveresponse(EX_NOUSER, m, NULL, e);
}
else
giveresponse(EX_NOUSER, m, NULL, e);
}
else
a->q_user = newstr(pw->pw_name);
if (findusercount++ > 3)
{
a->q_user = newstr(pw->pw_name);
if (findusercount++ > 3)
{
+ a->q_flags |= QDONTSEND|QBADADDR;
usrerr("554 aliasing/forwarding loop for %s broken",
pw->pw_name);
return (a);
usrerr("554 aliasing/forwarding loop for %s broken",
pw->pw_name);
return (a);