mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-16 06:25:35 +08:00
tc: fix ipv6 filter selector attribute for some prefix lengths
Wrong TCA_U32_SEL attribute packing if prefixLen AND 0x1f equals 0x1f. These are /31, /63, /95 and /127 prefix lengths. Example: ip6 dst face:b00f::/31 filter parent b: protocol ipv6 pref 2307 u32 filter parent b: protocol ipv6 pref 2307 u32 fh 800: ht divisor 1 filter parent b: protocol ipv6 pref 2307 u32 fh 800::800 order 2048 key ht 800 bkt 0 match faceb00f/ffffffff at 24 v2: previous patch was made with a wrong repo Signed-off-by: Yulia Kartseva <hex@fb.com>
This commit is contained in:
parent
e4139268ba
commit
73451259da
@ -385,8 +385,7 @@ static int parse_ip6_addr(int *argc_p, char ***argv_p,
|
||||
|
||||
plen = addr.bitlen;
|
||||
for (i = 0; i < plen; i += 32) {
|
||||
/* if (((i + 31) & ~0x1F) <= plen) { */
|
||||
if (i + 31 <= plen) {
|
||||
if (i + 31 < plen) {
|
||||
res = pack_key(sel, addr.data[i / 32],
|
||||
0xFFFFFFFF, off + 4 * (i / 32), offmask);
|
||||
if (res < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user