diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2017-10-19 11:02:43 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2017-10-19 11:02:43 +0000 |
commit | dc60aa1d14faf2b7e1295889a03f58cce0556fd3 (patch) | |
tree | 86f7ab271365e35b98d76970bf749daf334e84f3 /sys/dev/ic/aacvar.h | |
parent | dbf5e234c2ecdf26dd402a3a00b5bbcdca22690c (diff) |
There was a possible stack overrun in the network since we had
removed some queueing. lo(4) output called the ip input routines
without a queue. So if a packet looped through the kernel, the
kernel stack filled up.
Use M_LOOP to find recursive calls to looutput(). This flag is set
when a packet goes through the loopback interface. Avoid an
additional queueing if the packet goes to lo(4) only once. As there
may be gif(4), bridge(4), pair(4), ipsec(4), rdomain(4), ... setups
that legitimately pass lo(4) more than once, use the interface input
queue for these cases.
Packets in the queue run through ip forward. There the TTL is
decremented and the packet is finally processed or dropped.
found by markus@; OK mpi@ sashan@
Diffstat (limited to 'sys/dev/ic/aacvar.h')
0 files changed, 0 insertions, 0 deletions