From owner-freebsd-stable@FreeBSD.ORG Sun Aug 22 10:40:32 2010 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4305B1065696; Sun, 22 Aug 2010 10:40:32 +0000 (UTC) (envelope-from stb@lassitu.de) Received: from gilb.zs64.net (gilb.zs64.net [212.12.50.234]) by mx1.freebsd.org (Postfix) with ESMTP id 0694A8FC0A; Sun, 22 Aug 2010 10:40:31 +0000 (UTC) Received: by gilb.zs64.net (Postfix, from stb@lassitu.de) id 3C45B93E9B; Sun, 22 Aug 2010 10:40:15 +0000 (UTC) Mime-Version: 1.0 (Apple Message framework v1081) Content-Type: text/plain; charset=us-ascii From: Stefan Bethke In-Reply-To: Date: Sun, 22 Aug 2010 12:40:09 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <20100822031045.sl4d10544k0s80kw@newwebmail.jnielsen.net> To: John Nielsen X-Mailer: Apple Mail (2.1081) Cc: gshapiro@freebsd.org, FreeBSD Stable Subject: Re: Apparent dnsbl bug in Sendmail or m4 X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 10:40:32 -0000 Am 22.08.2010 um 10:00 schrieb Stefan Bethke: > FEATURE(`dnsbl', `bl.spamcop.net', `"550 " $&{client_addr} "foo" = $&{client_addr} ""')dnl The real culprit is the comma. I believe the problem stems from = unquoted use of the arguments in some of the ifelses, where the comma = turns the single argument into two. Tracing the ifelses with -d aceq I = see this for the last ifelse in cf/feature/dnsbl.m4: m4trace: -1- ifelse(`X"550 Mail from " $&{client_addr} " rejected', `see = http://spamcop.net/bl.shtml?" $&{client_addr}', `Xquarantine', `R$+ = $#error $@ quarantine $: _DNSBL_SRV_', `X"550 Mail from " = $&{client_addr} " rejected', ` see http://spamcop.net/bl.shtml?" $&{client_addr}', `Xdiscard', `R$+ = =20 $#discard $: _DNSBL_SRV_', `R$+ $#error $@ 5.7.1 $: = _DNSBL_MSG_' ) -> ??? m4trace: -1- ifelse(...) -> `' m4trace: -1- ifelse ... I've never managed to really wrap my head around m4 quoting, but the = easy fix is to use some other character that has no meaning to m4. Stefan --=20 Stefan Bethke Fon +49 151 14070811