From: Jo-Philipp Wich Date: Mon, 4 Mar 2024 22:54:24 +0000 (+0100) Subject: luci-mod-status: fix sporadic logical interfaces resolve failures X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3cbf27061ad313ab47abf979d4549b1423cf9b6a;p=project%2Fluci.git luci-mod-status: fix sporadic logical interfaces resolve failures Correct the incorrect netmask calculation logic leading to incorrect network range comparisons in some cases. Fixes: #6956 Signed-off-by: Jo-Philipp Wich (cherry picked from commit fa6c345e19360439fa5077137d1e927b0cc501d0) --- diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js index 8d7e36f701..dfe19fc70a 100644 --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/routes.js @@ -13,13 +13,15 @@ var callNetworkInterfaceDump = rpc.declare({ function applyMask(addr, mask, v6) { var words = v6 ? validation.parseIPv6(addr) : validation.parseIPv4(addr); + var bword = v6 ? 0xffff : 0xff; + var bwlen = v6 ? 16 : 8; if (!words || mask < 0 || mask > (v6 ? 128 : 32)) return null; for (var i = 0; i < words.length; i++) { - var b = Math.min(mask, v6 ? 16 : 8); - words[i] &= ((1 << b) - 1); + var b = Math.min(mask, bwlen); + words[i] &= (bword << (bwlen - b)) & bword; mask -= b; }