mirror of
https://github.com/torvalds/linux.git
synced 2026-09-03 14:40:02 +02:00
The data fin flag is set only via a DSS option, but
mptcp_incoming_options() copies it unconditionally from the
provided RX options.
Since we do not clear all the mptcp sock RX options in a
socket free/alloc cycle, we can end-up with a stray data_fin
value while parsing e.g. MPC packets.
That would lead to mapping data corruption and will trigger
a few WARN_ON() in the RX path.
Instead of adding a costly memset(), fetch the data_fin flag
only for DSS packets - when we always explicitly initialize
such bit at option parsing time.
Fixes:
|
||
|---|---|---|
| .. | ||
| crypto.c | ||
| ctrl.c | ||
| diag.c | ||
| Kconfig | ||
| Makefile | ||
| mib.c | ||
| mib.h | ||
| options.c | ||
| pm_netlink.c | ||
| pm.c | ||
| protocol.c | ||
| protocol.h | ||
| subflow.c | ||
| token.c | ||