Fix cidr /32 ip filter entries covering everything above the address.

Shifting end_mask by the full type width is undefined behavior.
This commit is contained in:
noctuum
2026-09-13 07:33:01 +05:00
committed by Jari Sundell
parent 20002ce937
commit c984a69fd1
+3
View File
@@ -206,6 +206,9 @@ ipv4_range_parse(const char* address, uint32_t* address_start, uint32_t* address
if (mask_bits == 0) {
mask = 0;
end_mask = ~(uint32_t)0;
} else if (mask_bits == 32) {
mask = ~(uint32_t)0;
end_mask = 0;
} else {
mask = (~mask) << (32-mask_bits);
end_mask = (~end_mask) >> mask_bits;