]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
renumber: fix incorrect masking of bytes after netmask boundary
authorOto Šťáva <oto.stava@nic.cz>
Thu, 9 Jun 2022 06:28:02 +0000 (08:28 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 9 Jun 2022 10:11:34 +0000 (12:11 +0200)
(we changed the original fix a bit)

modules/renumber/renumber.lua

index bd5e4e9d4a56c550131e8325851e8d2bee4faef3..2e209c165a102a1fa971b951a6e8663fbed04aff 100644 (file)
@@ -32,7 +32,6 @@ local function mergeIps(ipNet, ipHost, intMask)
        for currentOctetNo = 1, #ipNet do
                if intMask >= 8 then
                        result = result .. ipNet:sub(currentOctetNo,currentOctetNo)
-                       intMask = intMask - 8
                elseif (intMask <= 0) then
                        result = result .. ipHost:sub(currentOctetNo,currentOctetNo)
                else
@@ -42,6 +41,7 @@ local function mergeIps(ipNet, ipHost, intMask)
                                        bit.band(string.byte(ipHost:sub(currentOctetNo,currentOctetNo)), bit.bnot(octetMask))
                        ))
                end
+               intMask = intMask - 8
        end
 
        return result