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; }