BCC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Dmitry Safonov <[email protected]>
TO: Eric Dumazet <[email protected]>
TO: "David S. Miller" <[email protected]>
CC: [email protected]
TO: [email protected]
CC: Dmitry Safonov <[email protected]>
CC: Andy Lutomirski <[email protected]>
CC: Ard Biesheuvel <[email protected]>
CC: Bob Gilligan <[email protected]>
CC: David Ahern <[email protected]>
CC: Eric Biggers <[email protected]>
CC: Francesco Ruggeri <[email protected]>
CC: Herbert Xu <[email protected]>
CC: Hideaki YOSHIFUJI <[email protected]>
CC: Ivan Delalande <[email protected]>
CC: Jakub Kicinski <[email protected]>
CC: Leonard Crestez <[email protected]>
CC: Paolo Abeni <[email protected]>
CC: Salam Noureddine <[email protected]>
CC: Shuah Khan <[email protected]>
CC: [email protected]

Hi Dmitry,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on e34cfee65ec891a319ce79797dda18083af33a76]

url:    
https://github.com/intel-lab-lkp/linux/commits/Dmitry-Safonov/net-tcp-Add-TCP-AO-support/20220819-010628
base:   e34cfee65ec891a319ce79797dda18083af33a76
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: x86_64-randconfig-m001 
(https://download.01.org/0day-ci/archive/20220822/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
net/ipv4/tcp_output.c:640 tcp_options_write() error: uninitialized symbol 
'maclen'.
net/ipv4/tcp_output.c:686 tcp_options_write() error: we previously assumed 'tp' 
could be null (see line 626)

vim +/maclen +640 net/ipv4/tcp_output.c

331fca4315efa3b Martin KaFai Lau      2020-08-20  594  
67edfef78639573 Andi Kleen            2009-07-21  595  /* Write previously 
computed TCP options to the packet.
67edfef78639573 Andi Kleen            2009-07-21  596   *
67edfef78639573 Andi Kleen            2009-07-21  597   * Beware: Something in 
the Internet is very sensitive to the ordering of
fd6149d332973ba Ilpo Järvinen         2008-10-23  598   * TCP options, we 
learned this through the hard way, so be careful here.
fd6149d332973ba Ilpo Järvinen         2008-10-23  599   * Luckily we can at 
least blame others for their non-compliance but from
8e3bff96afa6736 stephen hemminger     2013-12-08  600   * inter-operability 
perspective it seems that we're somewhat stuck with
fd6149d332973ba Ilpo Järvinen         2008-10-23  601   * the ordering which we 
have been using if we want to keep working with
fd6149d332973ba Ilpo Järvinen         2008-10-23  602   * those broken things 
(not that it currently hurts anybody as there isn't
fd6149d332973ba Ilpo Järvinen         2008-10-23  603   * particular reason why 
the ordering would need to be changed).
fd6149d332973ba Ilpo Järvinen         2008-10-23  604   *
fd6149d332973ba Ilpo Järvinen         2008-10-23  605   * At least SACK_PERM as 
the first option is known to lead to a disaster
fd6149d332973ba Ilpo Järvinen         2008-10-23  606   * (but it may well be 
that other scenarios fail similarly).
fd6149d332973ba Ilpo Järvinen         2008-10-23  607   */
ea66758c1795cef Paolo Abeni           2022-05-04  608  static void 
tcp_options_write(struct tcphdr *th, struct tcp_sock *tp,
85df6b860d509a9 Dmitry Safonov        2022-08-18  609                         
struct tcp_out_options *opts,
85df6b860d509a9 Dmitry Safonov        2022-08-18  610                         
struct tcp_ao_key *ao_key)
bd0388ae7707502 William Allen Simpson 2009-12-02  611  {
ea66758c1795cef Paolo Abeni           2022-05-04  612   __be32 *ptr = (__be32 
*)(th + 1);
2100c8d2d9db23c Yuchung Cheng         2012-07-19  613   u16 options = 
opts->options;    /* mungable copy */
bd0388ae7707502 William Allen Simpson 2009-12-02  614  
bd0388ae7707502 William Allen Simpson 2009-12-02  615   if (unlikely(OPTION_MD5 
& options)) {
1a2c6181c4a1922 Christoph Paasch      2013-03-17  616           *ptr++ = 
htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) |
1a2c6181c4a1922 Christoph Paasch      2013-03-17  617                          
(TCPOPT_MD5SIG << 8) | TCPOLEN_MD5SIG);
bd0388ae7707502 William Allen Simpson 2009-12-02  618           /* overload 
cookie hash location */
bd0388ae7707502 William Allen Simpson 2009-12-02  619           
opts->hash_location = (__u8 *)ptr;
33ad798c924b4a1 Adam Langley          2008-07-19  620           ptr += 4;
33ad798c924b4a1 Adam Langley          2008-07-19  621   }
85df6b860d509a9 Dmitry Safonov        2022-08-18  622  #ifdef CONFIG_TCP_AO
85df6b860d509a9 Dmitry Safonov        2022-08-18  623   if (unlikely(OPTION_AO 
& options)) {
85df6b860d509a9 Dmitry Safonov        2022-08-18  624           u8 maclen;
33ad798c924b4a1 Adam Langley          2008-07-19  625  
85df6b860d509a9 Dmitry Safonov        2022-08-18 @626           if (tp) {
85df6b860d509a9 Dmitry Safonov        2022-08-18  627                   struct 
tcp_ao_info *ao_info;
85df6b860d509a9 Dmitry Safonov        2022-08-18  628  
85df6b860d509a9 Dmitry Safonov        2022-08-18  629                   ao_info 
= rcu_dereference_check(tp->ao_info,
85df6b860d509a9 Dmitry Safonov        2022-08-18  630                           
lockdep_sock_is_held(&tp->inet_conn.icsk_inet.sk));
85df6b860d509a9 Dmitry Safonov        2022-08-18  631                   if 
(WARN_ON_ONCE(!ao_key || !ao_info || !ao_info->rnext_key))
85df6b860d509a9 Dmitry Safonov        2022-08-18  632                           
goto out_ao;
85df6b860d509a9 Dmitry Safonov        2022-08-18  633                   maclen 
= tcp_ao_maclen(ao_key);
85df6b860d509a9 Dmitry Safonov        2022-08-18  634                   *ptr++ 
= htonl((TCPOPT_AO << 24) |
85df6b860d509a9 Dmitry Safonov        2022-08-18  635                           
       (tcp_ao_len(ao_key) << 16) |
85df6b860d509a9 Dmitry Safonov        2022-08-18  636                           
       (ao_key->sndid << 8) |
85df6b860d509a9 Dmitry Safonov        2022-08-18  637                           
       (ao_info->rnext_key->rcvid));
85df6b860d509a9 Dmitry Safonov        2022-08-18  638           }
85df6b860d509a9 Dmitry Safonov        2022-08-18  639           
opts->hash_location = (__u8 *)ptr;
85df6b860d509a9 Dmitry Safonov        2022-08-18 @640           ptr += maclen / 
sizeof(*ptr);
85df6b860d509a9 Dmitry Safonov        2022-08-18  641           if 
(unlikely(maclen % sizeof(*ptr))) {
85df6b860d509a9 Dmitry Safonov        2022-08-18  642                   
memset(ptr, TCPOPT_NOP, sizeof(*ptr));
85df6b860d509a9 Dmitry Safonov        2022-08-18  643                   ptr++;
85df6b860d509a9 Dmitry Safonov        2022-08-18  644           }
85df6b860d509a9 Dmitry Safonov        2022-08-18  645   }
85df6b860d509a9 Dmitry Safonov        2022-08-18  646  out_ao:
85df6b860d509a9 Dmitry Safonov        2022-08-18  647  #endif
fd6149d332973ba Ilpo Järvinen         2008-10-23  648   if 
(unlikely(opts->mss)) {
fd6149d332973ba Ilpo Järvinen         2008-10-23  649           *ptr++ = 
htonl((TCPOPT_MSS << 24) |
fd6149d332973ba Ilpo Järvinen         2008-10-23  650                          
(TCPOLEN_MSS << 16) |
fd6149d332973ba Ilpo Järvinen         2008-10-23  651                          
opts->mss);
fd6149d332973ba Ilpo Järvinen         2008-10-23  652   }
fd6149d332973ba Ilpo Järvinen         2008-10-23  653  
bd0388ae7707502 William Allen Simpson 2009-12-02  654   if (likely(OPTION_TS & 
options)) {
bd0388ae7707502 William Allen Simpson 2009-12-02  655           if 
(unlikely(OPTION_SACK_ADVERTISE & options)) {
33ad798c924b4a1 Adam Langley          2008-07-19  656                   *ptr++ 
= htonl((TCPOPT_SACK_PERM << 24) |
33ad798c924b4a1 Adam Langley          2008-07-19  657                           
       (TCPOLEN_SACK_PERM << 16) |
33ad798c924b4a1 Adam Langley          2008-07-19  658                           
       (TCPOPT_TIMESTAMP << 8) |
33ad798c924b4a1 Adam Langley          2008-07-19  659                           
       TCPOLEN_TIMESTAMP);
bd0388ae7707502 William Allen Simpson 2009-12-02  660                   options 
&= ~OPTION_SACK_ADVERTISE;
33ad798c924b4a1 Adam Langley          2008-07-19  661           } else {
496c98dff8e3538 YOSHIFUJI Hideaki     2006-10-10  662                   *ptr++ 
= htonl((TCPOPT_NOP << 24) |
40efc6fa179f440 Stephen Hemminger     2006-01-03  663                           
       (TCPOPT_NOP << 16) |
40efc6fa179f440 Stephen Hemminger     2006-01-03  664                           
       (TCPOPT_TIMESTAMP << 8) |
40efc6fa179f440 Stephen Hemminger     2006-01-03  665                           
       TCPOLEN_TIMESTAMP);
40efc6fa179f440 Stephen Hemminger     2006-01-03  666           }
33ad798c924b4a1 Adam Langley          2008-07-19  667           *ptr++ = 
htonl(opts->tsval);
33ad798c924b4a1 Adam Langley          2008-07-19  668           *ptr++ = 
htonl(opts->tsecr);
33ad798c924b4a1 Adam Langley          2008-07-19  669   }
33ad798c924b4a1 Adam Langley          2008-07-19  670  
bd0388ae7707502 William Allen Simpson 2009-12-02  671   if 
(unlikely(OPTION_SACK_ADVERTISE & options)) {
33ad798c924b4a1 Adam Langley          2008-07-19  672           *ptr++ = 
htonl((TCPOPT_NOP << 24) |
33ad798c924b4a1 Adam Langley          2008-07-19  673                          
(TCPOPT_NOP << 16) |
33ad798c924b4a1 Adam Langley          2008-07-19  674                          
(TCPOPT_SACK_PERM << 8) |
33ad798c924b4a1 Adam Langley          2008-07-19  675                          
TCPOLEN_SACK_PERM);
33ad798c924b4a1 Adam Langley          2008-07-19  676   }
33ad798c924b4a1 Adam Langley          2008-07-19  677  
bd0388ae7707502 William Allen Simpson 2009-12-02  678   if 
(unlikely(OPTION_WSCALE & options)) {
33ad798c924b4a1 Adam Langley          2008-07-19  679           *ptr++ = 
htonl((TCPOPT_NOP << 24) |
33ad798c924b4a1 Adam Langley          2008-07-19  680                          
(TCPOPT_WINDOW << 16) |
33ad798c924b4a1 Adam Langley          2008-07-19  681                          
(TCPOLEN_WINDOW << 8) |
33ad798c924b4a1 Adam Langley          2008-07-19  682                          
opts->ws);
33ad798c924b4a1 Adam Langley          2008-07-19  683   }
33ad798c924b4a1 Adam Langley          2008-07-19  684  
33ad798c924b4a1 Adam Langley          2008-07-19  685   if 
(unlikely(opts->num_sack_blocks)) {
33ad798c924b4a1 Adam Langley          2008-07-19 @686           struct 
tcp_sack_block *sp = tp->rx_opt.dsack ?
33ad798c924b4a1 Adam Langley          2008-07-19  687                   
tp->duplicate_sack : tp->selective_acks;
40efc6fa179f440 Stephen Hemminger     2006-01-03  688           int this_sack;
40efc6fa179f440 Stephen Hemminger     2006-01-03  689  
40efc6fa179f440 Stephen Hemminger     2006-01-03  690           *ptr++ = 
htonl((TCPOPT_NOP  << 24) |
40efc6fa179f440 Stephen Hemminger     2006-01-03  691                          
(TCPOPT_NOP  << 16) |
40efc6fa179f440 Stephen Hemminger     2006-01-03  692                          
(TCPOPT_SACK <<  8) |
33ad798c924b4a1 Adam Langley          2008-07-19  693                          
(TCPOLEN_SACK_BASE + (opts->num_sack_blocks *
40efc6fa179f440 Stephen Hemminger     2006-01-03  694                           
                     TCPOLEN_SACK_PERBLOCK)));
2de979bd7da9c8b Stephen Hemminger     2007-03-08  695  
33ad798c924b4a1 Adam Langley          2008-07-19  696           for (this_sack 
= 0; this_sack < opts->num_sack_blocks;
33ad798c924b4a1 Adam Langley          2008-07-19  697                
++this_sack) {
40efc6fa179f440 Stephen Hemminger     2006-01-03  698                   *ptr++ 
= htonl(sp[this_sack].start_seq);
40efc6fa179f440 Stephen Hemminger     2006-01-03  699                   *ptr++ 
= htonl(sp[this_sack].end_seq);
40efc6fa179f440 Stephen Hemminger     2006-01-03  700           }
2de979bd7da9c8b Stephen Hemminger     2007-03-08  701  
40efc6fa179f440 Stephen Hemminger     2006-01-03  702           
tp->rx_opt.dsack = 0;
40efc6fa179f440 Stephen Hemminger     2006-01-03  703   }
2100c8d2d9db23c Yuchung Cheng         2012-07-19  704  
2100c8d2d9db23c Yuchung Cheng         2012-07-19  705   if 
(unlikely(OPTION_FAST_OPEN_COOKIE & options)) {
2100c8d2d9db23c Yuchung Cheng         2012-07-19  706           struct 
tcp_fastopen_cookie *foc = opts->fastopen_cookie;
7f9b838b71eb78a Daniel Lee            2015-04-06  707           u8 *p = (u8 
*)ptr;
7f9b838b71eb78a Daniel Lee            2015-04-06  708           u32 len; /* 
Fast Open option length */
2100c8d2d9db23c Yuchung Cheng         2012-07-19  709  
7f9b838b71eb78a Daniel Lee            2015-04-06  710           if (foc->exp) {
7f9b838b71eb78a Daniel Lee            2015-04-06  711                   len = 
TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
7f9b838b71eb78a Daniel Lee            2015-04-06  712                   *ptr = 
htonl((TCPOPT_EXP << 24) | (len << 16) |
2100c8d2d9db23c Yuchung Cheng         2012-07-19  713                           
     TCPOPT_FASTOPEN_MAGIC);
7f9b838b71eb78a Daniel Lee            2015-04-06  714                   p += 
TCPOLEN_EXP_FASTOPEN_BASE;
7f9b838b71eb78a Daniel Lee            2015-04-06  715           } else {
7f9b838b71eb78a Daniel Lee            2015-04-06  716                   len = 
TCPOLEN_FASTOPEN_BASE + foc->len;
7f9b838b71eb78a Daniel Lee            2015-04-06  717                   *p++ = 
TCPOPT_FASTOPEN;
7f9b838b71eb78a Daniel Lee            2015-04-06  718                   *p++ = 
len;
7f9b838b71eb78a Daniel Lee            2015-04-06  719           }
2100c8d2d9db23c Yuchung Cheng         2012-07-19  720  
7f9b838b71eb78a Daniel Lee            2015-04-06  721           memcpy(p, 
foc->val, foc->len);
7f9b838b71eb78a Daniel Lee            2015-04-06  722           if ((len & 3) 
== 2) {
7f9b838b71eb78a Daniel Lee            2015-04-06  723                   
p[foc->len] = TCPOPT_NOP;
7f9b838b71eb78a Daniel Lee            2015-04-06  724                   
p[foc->len + 1] = TCPOPT_NOP;
2100c8d2d9db23c Yuchung Cheng         2012-07-19  725           }
7f9b838b71eb78a Daniel Lee            2015-04-06  726           ptr += (len + 
3) >> 2;
2100c8d2d9db23c Yuchung Cheng         2012-07-19  727   }
60e2a7780793bae Ursula Braun          2017-10-25  728  
60e2a7780793bae Ursula Braun          2017-10-25  729   smc_options_write(ptr, 
&options);
eda7acddf8080bb Peter Krystad         2020-01-21  730  
ea66758c1795cef Paolo Abeni           2022-05-04  731   mptcp_options_write(th, 
ptr, tp, opts);
60e2a7780793bae Ursula Braun          2017-10-25  732  }
60e2a7780793bae Ursula Braun          2017-10-25  733  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to