HomeFreeBSD

ping: Verify whether a datagram timestamp was actually received.

Description

ping: Verify whether a datagram timestamp was actually received.

ping(8) uses SO_TIMESTAMP, which attaches a timestamp to each IP datagram at
the time it's received by the kernel. Except that occasionally it doesn't.
Add a check to see whether such a timestamp was actually set before trying
to read it. This fixes segfaults that can happen when the kernel doesn't
attach a timestamp.

The bug has always existed, but prior to r351461 it manifested as an
implausible round-trip-time, not a segfault.

Reported by: pho
MFC after: 3 days
MFC-With: 351461

Details

Committed
asomersSep 11 2019, 6:54 PM
Parents
rS352228: Avoid unneeded call to arc4random() in syncache_add()
Branches
Unknown
Tags
Unknown