HomeFreeBSD

PF_ANEQ() macro will in most situations returns TRUE comparing two identical

Description

PF_ANEQ() macro will in most situations returns TRUE comparing two identical
IPv4 packets (when it should return FALSE). It happens because PF_ANEQ() doesn't
stop if first 32 bits of IPv4 packets are equal and starts to check next 3*32
bits (like for IPv6 packet). Those bits containt some garbage and in result
PF_ANEQ() wrongly returns TRUE.

Fix: Check if packet is of AF_INET type and if it is then compare only first 32
bits of data.

PR: 204005
Submitted by: MiƂosz Kaniewski

Details

Provenance
kpAuthored on
Parents
rS289931: According to POSIX, a write operation shall start at the current size of
Branches
Unknown
Tags
Unknown