]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tcp: Don't set treq->req_usec_ts in cookie_tcp_reqsk_init().
authorKuniyuki Iwashima <kuniyu@google.com>
Fri, 10 Apr 2026 23:53:27 +0000 (23:53 +0000)
committerJakub Kicinski <kuba@kernel.org>
Mon, 13 Apr 2026 22:58:08 +0000 (15:58 -0700)
Commit de5626b95e13 ("tcp: Factorise cookie-independent fields
initialisation in cookie_v[46]_check().") miscategorised
tcp_rsk(req)->req_usec_ts init to cookie_tcp_reqsk_init(),
which is used by both BPF/non-BPF SYN cookie reqsk.

Rather, it should have been moved to cookie_tcp_reqsk_alloc() by
commit 8e7bab6b9652 ("tcp: Factorise cookie-dependent fields
initialisation in cookie_v[46]_check()") so that only non-BPF SYN
cookie sets tcp_rsk(req)->req_usec_ts to false.

Let's move the initialisation to cookie_tcp_reqsk_alloc() to
respect bpf_tcp_req_attrs.usec_ts_ok.

Fixes: e472f88891ab ("bpf: tcp: Support arbitrary SYN Cookie.")
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260410235328.1773449-1-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/syncookies.c

index fc3affd9c8014b1d4e9f161421a7753717cdcd73..b5f0a65c678645c14e10cb554b303797737d3b4b 100644 (file)
@@ -286,7 +286,6 @@ static int cookie_tcp_reqsk_init(struct sock *sk, struct sk_buff *skb,
        treq->rcv_isn = ntohl(th->seq) - 1;
        treq->snt_isn = ntohl(th->ack_seq) - 1;
        treq->syn_tos = TCP_SKB_CB(skb)->ip_dsfield;
-       treq->req_usec_ts = false;
 
 #if IS_ENABLED(CONFIG_MPTCP)
        treq->is_mptcp = sk_is_mptcp(sk);
@@ -349,6 +348,7 @@ struct request_sock *cookie_tcp_reqsk_alloc(const struct request_sock_ops *ops,
        ireq->wscale_ok = tcp_opt->wscale_ok;
        ireq->ecn_ok = !!(tcp_opt->rcv_tsecr & TS_OPT_ECN);
 
+       treq->req_usec_ts = false;
        treq->ts_off = tsoff;
 
        return req;