diff -ruN qmail-1.03-7.07/qmail-smtpd.c qmail-1.03-7.08/qmail-smtpd.c --- qmail-1.03-7.07/qmail-smtpd.c 2008-06-02 21:38:14.000000000 -0400 +++ qmail-1.03-7.08/qmail-smtpd.c 2008-11-14 12:25:36.000000000 -0500 @@ -593,9 +594,11 @@ unsigned int random; int j; + if (str_equal(addr.s,"#@[]")) return 0; if (!mfchk) return 0; random = now() + (getpid() << 16); j = byte_rchr(addr.s,addr.len,'@') + 1; + if (addr.len == 1) return 0; if (j < addr.len) { stralloc_copys(&sa, addr.s + j); dns_init(0); @@ -608,8 +611,8 @@ if(mfchk>2) strerr_warn5(title.s,"MFCHECK pass [",remoteip,"] ",sa.s,0); return 0; } - if(mfchk>2) strerr_warn5(title.s,"MFCHECK bypassed [",remoteip,"] ",addr.s,0); - return 0; + if(mfchk>1) strerr_warn5(title.s,"MFCHECK invalid [",remoteip,"] ",addr.s,0); + return DNS_HARD; } void vrtlog(l,a,b)