int i;
pr_debug("%s() invoked\n", __FUNCTION__);
+ /* Limit can_mask and can_id to SFF range to protect against write after end of array */
can_mask &= CAN_SFF_MASK;
+ can_id &= can_mask;
/* single frame */
if (can_mask == CAN_SFF_MASK) {
return;
}
- /* individual frame filter: reduce runtime operations */
- can_id &= can_mask;
-
+ /* individual frame filter */
/* Add record (set bit to 1) for each ID that conforms particular rule */
for (i = 0; i < (1 << CAN_SFF_ID_BITS); i++) {
if ((i & can_mask) == can_id)