tcp: Don't flag tcp_sk(sk)->rx_opt.saw_unknown for TCP AO.

BugLink: https://bugs.launchpad.net/bugs/2077600

[ Upstream commit 4b74726c01b7a0b5e1029e1e9247fd81590da726 ]

When we process segments with TCP AO, we don't check it in
tcp_parse_options().  Thus, opt_rx->saw_unknown is set to 1,
which unconditionally triggers the BPF TCP option parser.

Let's avoid the unnecessary BPF invocation.

Fixes: 0a3a809089 ("net/tcp: Verify inbound TCP-AO signed segments")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Dmitry Safonov <0x7f454c46@gmail.com>
Link: https://patch.msgid.link/20240703033508.6321-1-kuniyu@amazon.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Portia Stephens <portia.stephens@canonical.com>
Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
Kuniyuki Iwashima
2024-07-02 20:35:08 -07:00
committed by Stefan Bader
parent 828e64164c
commit 0f0b474316
+7
View File
@@ -4220,6 +4220,13 @@ void tcp_parse_options(const struct net *net,
* checked (see tcp_v{4,6}_rcv()).
*/
break;
#endif
#ifdef CONFIG_TCP_AO
case TCPOPT_AO:
/* TCP AO has already been checked
* (see tcp_inbound_ao_hash()).
*/
break;
#endif
case TCPOPT_FASTOPEN:
tcp_parse_fastopen_option(