A similar problem was also found in another function ip4_getbit(): during filter_test execution pos is greater than 31: (pos=32,33,34) so _I(a) >> (31 - pos) becomes UB This issue has been found by UBSAN.