diff options
author | Florian Obser <florian@cvs.openbsd.org> | 2020-10-21 11:11:59 +0000 |
---|---|---|
committer | Florian Obser <florian@cvs.openbsd.org> | 2020-10-21 11:11:59 +0000 |
commit | 64439b24672e81115a23268d8cf5f8fb783da702 (patch) | |
tree | 23c4d61fecc44228b59f7d756b8f21d5d359e8b1 /regress | |
parent | ac39114dfc73a149e488f5d6c4f23284f8cb454d (diff) |
ICMP raw sockets start to receive packets as soon as they are created
by socket(2). They also receive all ICMP packets on the system, for
example from parallel running ping(8)s.
After creating the raw socket ping(8) sets various socket options with
setsockopt(2) and assumes that they apply to all packets it later
processes.
For example ping6(8) uses setsockopt(IPV6_RECVHOPLIMIT) to print the
IPv6 hop count. Packets received between the socket(2) and
setsockopt(2) call however do not have the hoplimit information and
ping6(8) prints a wrong and missleading warning.
To avoid this we have to drain our socket of packets we received
before we were fully setup.
Problem reported and testing by martijn
Input deraadt
OK benno
Diffstat (limited to 'regress')
0 files changed, 0 insertions, 0 deletions