On Wed, 2021-01-20 at 11:40 +0100, Paolo Abeni wrote:
> @@ -428,6 +429,7 @@ static int subflow_v4_conn_request(struct sock *sk, 
> struct sk_buff *skb)
>  static struct tcp_request_sock_ops subflow_request_sock_ipv6_ops;
>  static struct inet_connection_sock_af_ops subflow_v6_specific;
>  static struct inet_connection_sock_af_ops subflow_v6m_specific;
> +static struct proto tcpv6_prot_override;
>  
>  static int subflow_v6_conn_request(struct sock *sk, struct sk_buff *skb)
>  {
> @@ -509,6 +511,14 @@ static void subflow_ulp_fallback(struct sock *sk,
>       icsk->icsk_ulp_ops = NULL;
>       rcu_assign_pointer(icsk->icsk_ulp_data, NULL);
>       tcp_sk(sk)->is_mptcp = 0;
> +
> +     /* undo override */
> +#if IS_ENABLED(CONFIG_MPTCP_IPV6)
> +     if (sk->sk_prot == &tcpv6_prot_override)
> +             sk->sk_prot = &tcpv6_prot;
> +     else
> +#endif
> +             sk->sk_prot = &tcp_prot;

CI just spotted an UaF due this patch. We need to do the above also at
ULP release time. I'll send a v2 soon.

Sorry for the noise.

Paolo

Reply via email to