]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
It is possible for bpf to return a length such that:
authorbrooks <brooks@FreeBSD.org>
Tue, 26 Sep 2006 01:02:02 +0000 (01:02 +0000)
committerbrooks <brooks@FreeBSD.org>
Tue, 26 Sep 2006 01:02:02 +0000 (01:02 +0000)
commita0d200f631291252561f016e34c47c970542ad7a
tree8cc77d01c18a1ee953f94c1fc1973ef6724c4194
parentaa39d5a21d65d0824205e5e5a3ab9e2a8138baa3
It is possible for bpf to return a length such that:

length != BPF_WORDALIGN(length)

This meeans that it is possible for this to be true:

interface->rbuf_offset > interface->rbuf_len

Handle this case in the test for running out of packets.  While
OpenBSD's solution of setting interface->rbuf_len to
BPF_WORDALIGN(length) is safe due to the size of the buffer, I think
this solution results in less hidden assumptions.

This should fix the problem of dhclient running away and consuming 100%
CPU.

PR: bin/102226
Submitted by: Joost Bekkers <joost at jodocus.org>
MFC after: 3 days
sbin/dhclient/bpf.c