Package: sauce
Version: 0.9.0+nmu2

--- /usr/share/sauce/rcpt-policy~       2010-08-13 22:44:01.000000000 +0100
+++ /usr/share/sauce/rcpt-policy        2012-01-13 17:24:53.000000000 +0000
@@ -147,8 +147,9 @@
            syxerr "invalid address: $emsg"
        }
        if {$len > 32} { syxerr "prefix length >32" }
-       set ma_v [expr {$len == 0 ? 0 : (0xffffffff<<(32-$len))}]
-       if {$re_v & ~$ma_v} { syxerr "mask is non-zero beyond prefix" }
+       set ma_v [expr {$len == 0 ? 0 : ((0xffffffff<<(32-$len))&0xffffffff)}]
+       set bad [expr {$re_v & ($ma_v ^ 0xffffffff)}]
+       if {$bad} { syxerr "mask is non-zero beyond prefix" }
        cond_add "(\$ra_v & [format 0x%08x $ma_v]) == [format 0x%08x $re_v]"
     } elseif {[string match "\[*" $pat]} {
        syxerr "invalid address mask"


-- 
Ian Jackson                  personal email: <ijack...@chiark.greenend.org.uk>
These opinions are my own.        http://www.chiark.greenend.org.uk/~ijackson/
PGP2 key 1024R/0x23f5addb,     fingerprint 5906F687 BD03ACAD 0D8E602E FCF37657



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to