OPENAFS-SA-2017-001: rx: Sanity-check received MTU and twind values
authorBenjamin Kaduk <kaduk@mit.edu>
Mon, 4 Dec 2017 23:20:57 +0000 (17:20 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 5 Dec 2017 14:25:44 +0000 (08:25 -0600)
commit894555f93a2571146cb9ca07140eb98c7a424b01
treea000398cd6ce6d0f688148d8313ca756f8b110cb
parent4fa0ee620cfb9991ca9748b5ee116cc8e1e6c505
OPENAFS-SA-2017-001: rx: Sanity-check received MTU and twind values

Rather than blindly trusting the values received in the
(unauthenticated) ack packet trailer, apply some minmial sanity checks
to received values.  natMTU and regular MTU values are subject to
Rx minmium/maximum packet sizes, and the transmit window cannot drop
below one without risk of deadlock.

The maxDgramPackets value that can also be present in the trailer
already has sufficient sanity checking.

Extremely low MTU values (less than 28 == RX_HEADER_SIZE) can cause us
to set a negative "maximum usable data" size that gets used as an
(unsigned) packet length for subsequent allocation and computation,
triggering an assertion when the connection is used to transmit data.

FIXES 134450

Change-Id: I37698ff166da47a57aa0d1962ae8effc74e30851
src/rx/rx.c