diff options
| author | Denys Fedoryshchenko <denys.f@collabora.com> | 2026-09-01 09:32:30 +0300 |
|---|---|---|
| committer | Denys Fedoryshchenko <denys.f@collabora.com> | 2026-09-01 09:32:30 +0300 |
| commit | 4654c4a9c083780f5e151ee064e69a357c48d364 (patch) | |
| tree | ee978a149543f91c8a155a6f6dcbee26564f7bf5 /drivers/dkms | |
| parent | d22666a84cc38b8018d839483db5df125fc6728b (diff) | |
| download | accel-ppp-4654c4a9c083780f5e151ee064e69a357c48d364.tar.gz accel-ppp-4654c4a9c083780f5e151ee064e69a357c48d364.zip | |
ppp: say why a malformed ConfReq drops the session
The option walkers of lcp_recv_conf_req() and its IPCP, IPV6CP and CCP
counterparts bail out with *_OPT_FAIL as soon as an option header does not
fit in the remaining bytes or carries an impossible length, and the caller
turns that into ap_session_terminate(TERM_USER_ERROR).
The bail out happens before the "recv [LCP ConfReq id=..." line is emitted,
so the session simply disappeared with nothing in the log to point at the
peer. The ConfAck, ConfNak and ConfRej walkers break out of their loop
instead and at least close the line they had already started.
Log the offending length, option id and the number of bytes left before
returning, so a peer sending malformed options can be told apart from the
other reasons a session ends with TERM_USER_ERROR.
Diffstat (limited to 'drivers/dkms')
0 files changed, 0 insertions, 0 deletions
