diff options
| author | Qingfang Deng <qingfang.deng@linux.dev> | 2026-10-20 17:21:11 +0800 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-10-21 17:24:20 -0700 |
| commit | b5b8c81836e2bec7b444dfa2b14fd14e912e9d63 (patch) | |
| tree | 5c64d53c865248cbfe2787ce2380802b520f383c /scripts/Makefile.thinlto | |
| parent | 9770818b8a92fb5fb77725bd5055f165eee3f52e (diff) | |
| download | linux-b5b8c81836e2bec7b444dfa2b14fd14e912e9d63.tar.gz linux-b5b8c81836e2bec7b444dfa2b14fd14e912e9d63.zip | |
pppoe: delete session hash entries by pointer match
pppoe_connect() copies the requested PPPoE address to a socket before
attempting to insert the socket into the session hash table. If the
tuple already exists, __set_item() returns -EALREADY, but the copied
address and ifindex remain set on the failed socket.
Closing that socket then deletes the existing socket's hash entry
through pppoe_release(), preventing it from receiving further session
traffic. An unprivileged process in the same network namespace can
trigger this through a duplicate connection attempt.
To avoid the accidental delete, pass the pppox_sock to __delete_item(),
and unlink only an entry whose pointer matches the requested socket.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Signed-off-by: Qingfang Deng <qingfang.deng@linux.dev>
Link: https://patch.msgid.link/20261020092118.47416-1-qingfang.deng@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
