On Fri, Sep 01, 2017 at 01:26:33AM +0200, Sabrina Dubroca wrote: > 2017-08-31, 09:59:39 -0700, Ivan Delalande wrote: > > diff --git a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c > > index a748c74aa8b7..abbf0edcf6c2 100644 > > --- a/net/ipv4/tcp_diag.c > > +++ b/net/ipv4/tcp_diag.c > [...] > > +static int tcp_diag_get_aux(struct sock *sk, bool net_admin, > > + struct sk_buff *skb) > > +{ > > +#ifdef CONFIG_TCP_MD5SIG > > + if (net_admin) { > > In tcp_diag_get_aux_size() you put a check for sk_fullsock. I don't > see anything preventing you from reaching this with a !fullsock?
Currently handler->idiag_get_aux is only called from inet_sk_diag_fill which has a `BUG_ON(!sk_fullsock(sk));`, but I could add another explicit check in that function if you think it's more consistent. Actually, I wasn't sure when adding this idiag_get_aux in v2 if it should be called from inet_twsk_diag_fill, inet_req_diag_fill and inet_csk_diag_fill, or just the last one. I chose that simpler approach for now to avoid duplicating these state checks in the idiag_get_aux defined by protocols and because we didn't need for INET_DIAG_MD5SIG, but it shouldn't be too hard to change. Do you think this could be useful for other protocols or attributes? Thank you, -- Ivan Delalande Arista Networks