CC: [email protected] BCC: [email protected] CC: [email protected] TO: Florian Westphal <[email protected]> CC: Kishen Maloor <[email protected]> CC: Mat Martineau <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master head: 4950b6990e3b1efae64a5f6fc5738d25e3b816b3 commit: 702c2f646d42cfd9e31133d68a8283fea48fd810 [8/18] mptcp: netlink: allow userspace-driven subflow establishment :::::: branch date: 7 hours ago :::::: commit date: 25 hours ago compiler: aarch64-linux-gcc (GCC) 11.3.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout 702c2f646d42cfd9e31133d68a8283fea48fd810 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) In file included from net/mptcp/pm_userspace.c: net/mptcp/pm_userspace.c:106:33: warning: Parameter 'skc' can be declared with const [constParameter] struct mptcp_addr_info *skc) ^ net/mptcp/protocol.h:658:7: warning: Uninitialized variables: tmp.node, tmp.local_key, tmp.remote_key, tmp.idsn, tmp.map_seq, tmp.snd_isn, tmp.token, tmp.rel_write_seq, tmp.map_subflow_seq, tmp.ssn_offset, tmp.map_data_len, tmp.map_data_csum, tmp.map_csum_len, tmp.request_mptcp, tmp.request_join, tmp.request_bkup, tmp.mp_capable, tmp.mp_join, tmp.fully_established, tmp.pm_notified, tmp.conn_finished, tmp.map_valid, tmp.map_csum_reqd, tmp.map_data_fin, tmp.mpc_map, tmp.backup, tmp.send_mp_prio, tmp.send_mp_fail, tmp.send_fastclose, tmp.send_infinite_map, tmp.rx_eof, tmp.can_ack, tmp.disposable, tmp.stale, tmp.local_id_valid, tmp.data_avail, tmp.mp_fail_response_expect, tmp.remote_nonce, tmp.thmac, tmp.local_nonce, tmp.remote_token, tmp.local_id, tmp.remote_id, tmp.reset_seen, tmp.reset_transient, tmp.reset_reason, tmp.stale_count, tmp.delegated_status, tmp.delegated_node, tmp.setsockopt_seq, tmp.stale_rcv_tstamp, tmp.tcp_sock, tmp.conn, tmp.icsk_af_ops, tmp.tcp_state_change, tmp.tc p_error_report, tmp.rcu [uninitvar] if (tmp != subflow) ^ net/mptcp/pm_userspace.c:47:12: warning: Uninitialized variables: e.list, e.flags, e.ifindex, e.lsk [uninitvar] match = e; ^ net/mptcp/pm_userspace.c:91:20: warning: Uninitialized variable: entry->addr [uninitvar] if (id == entry->addr.id) { ^ >> net/mptcp/pm_userspace.c:322:32: warning: Uninitialized variables: >> subflow.node, subflow.local_key, subflow.remote_key, subflow.idsn, >> subflow.map_seq, subflow.snd_isn, subflow.token, subflow.rel_write_seq, >> subflow.map_subflow_seq, subflow.ssn_offset, subflow.map_data_len, >> subflow.map_data_csum, subflow.map_csum_len, subflow.request_mptcp, >> subflow.request_join, subflow.request_bkup, subflow.mp_capable, >> subflow.mp_join, subflow.fully_established, subflow.pm_notified, >> subflow.conn_finished, subflow.map_valid, subflow.map_csum_reqd, >> subflow.map_data_fin, subflow.mpc_map, subflow.backup, subflow.send_mp_prio, >> subflow.send_mp_fail, subflow.send_fastclose, subflow.send_infinite_map, >> subflow.rx_eof, subflow.can_ack, subflow.disposable, subflow.stale, >> subflow.local_id_valid, subflow.data_avail, subflow.mp_fail_response_expect, >> subflow.remote_nonce, subflow.thmac, subflow.local_nonce, >> subflow.remote_token, subflow.local_id, subflow.remote_id, >> subflow.reset_seen, subflow.reset_transient, sub flow.reset_reason, subflow.stale_count, subflow.delegated_status, subflow.delegated_node, subflow.setsockopt_seq, subflow.stale_rcv_tstamp, subflow.tcp_sock, subflow.conn, subflow.icsk_af_ops, subflow.tcp_state_change, subflow.tcp_error_report, subflow.rcu [uninitvar] ssk = mptcp_subflow_tcp_sock(subflow); ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) ^ net/mptcp/pm_userspace.c:313:20: note: Assuming condition is false if (local->family != remote->family) vim +322 net/mptcp/pm_userspace.c 702c2f646d42cf Florian Westphal 2022-05-03 304 702c2f646d42cf Florian Westphal 2022-05-03 305 static struct sock *mptcp_nl_find_ssk(struct mptcp_sock *msk, 702c2f646d42cf Florian Westphal 2022-05-03 306 const struct mptcp_addr_info *local, 702c2f646d42cf Florian Westphal 2022-05-03 307 const struct mptcp_addr_info *remote) 702c2f646d42cf Florian Westphal 2022-05-03 308 { 702c2f646d42cf Florian Westphal 2022-05-03 309 struct sock *sk = &msk->sk.icsk_inet.sk; 702c2f646d42cf Florian Westphal 2022-05-03 310 struct mptcp_subflow_context *subflow; 702c2f646d42cf Florian Westphal 2022-05-03 311 struct sock *found = NULL; 702c2f646d42cf Florian Westphal 2022-05-03 312 702c2f646d42cf Florian Westphal 2022-05-03 313 if (local->family != remote->family) 702c2f646d42cf Florian Westphal 2022-05-03 314 return NULL; 702c2f646d42cf Florian Westphal 2022-05-03 315 702c2f646d42cf Florian Westphal 2022-05-03 316 lock_sock(sk); 702c2f646d42cf Florian Westphal 2022-05-03 317 702c2f646d42cf Florian Westphal 2022-05-03 318 mptcp_for_each_subflow(msk, subflow) { 702c2f646d42cf Florian Westphal 2022-05-03 319 const struct inet_sock *issk; 702c2f646d42cf Florian Westphal 2022-05-03 320 struct sock *ssk; 702c2f646d42cf Florian Westphal 2022-05-03 321 702c2f646d42cf Florian Westphal 2022-05-03 @322 ssk = mptcp_subflow_tcp_sock(subflow); 702c2f646d42cf Florian Westphal 2022-05-03 323 702c2f646d42cf Florian Westphal 2022-05-03 324 if (local->family != ssk->sk_family) 702c2f646d42cf Florian Westphal 2022-05-03 325 continue; 702c2f646d42cf Florian Westphal 2022-05-03 326 702c2f646d42cf Florian Westphal 2022-05-03 327 issk = inet_sk(ssk); 702c2f646d42cf Florian Westphal 2022-05-03 328 702c2f646d42cf Florian Westphal 2022-05-03 329 switch (ssk->sk_family) { 702c2f646d42cf Florian Westphal 2022-05-03 330 case AF_INET: 702c2f646d42cf Florian Westphal 2022-05-03 331 if (issk->inet_saddr != local->addr.s_addr || 702c2f646d42cf Florian Westphal 2022-05-03 332 issk->inet_daddr != remote->addr.s_addr) 702c2f646d42cf Florian Westphal 2022-05-03 333 continue; 702c2f646d42cf Florian Westphal 2022-05-03 334 break; 702c2f646d42cf Florian Westphal 2022-05-03 335 #if IS_ENABLED(CONFIG_MPTCP_IPV6) 702c2f646d42cf Florian Westphal 2022-05-03 336 case AF_INET6: { 702c2f646d42cf Florian Westphal 2022-05-03 337 const struct ipv6_pinfo *pinfo = inet6_sk(ssk); 702c2f646d42cf Florian Westphal 2022-05-03 338 702c2f646d42cf Florian Westphal 2022-05-03 339 if (!ipv6_addr_equal(&local->addr6, &pinfo->saddr) || 702c2f646d42cf Florian Westphal 2022-05-03 340 !ipv6_addr_equal(&remote->addr6, &ssk->sk_v6_daddr)) 702c2f646d42cf Florian Westphal 2022-05-03 341 continue; 702c2f646d42cf Florian Westphal 2022-05-03 342 break; 702c2f646d42cf Florian Westphal 2022-05-03 343 } 702c2f646d42cf Florian Westphal 2022-05-03 344 #endif 702c2f646d42cf Florian Westphal 2022-05-03 345 default: 702c2f646d42cf Florian Westphal 2022-05-03 346 continue; 702c2f646d42cf Florian Westphal 2022-05-03 347 } 702c2f646d42cf Florian Westphal 2022-05-03 348 702c2f646d42cf Florian Westphal 2022-05-03 349 if (issk->inet_sport == local->port && 702c2f646d42cf Florian Westphal 2022-05-03 350 issk->inet_dport == remote->port) { 702c2f646d42cf Florian Westphal 2022-05-03 351 found = ssk; 702c2f646d42cf Florian Westphal 2022-05-03 352 goto found; 702c2f646d42cf Florian Westphal 2022-05-03 353 } 702c2f646d42cf Florian Westphal 2022-05-03 354 } 702c2f646d42cf Florian Westphal 2022-05-03 355 702c2f646d42cf Florian Westphal 2022-05-03 356 found: 702c2f646d42cf Florian Westphal 2022-05-03 357 release_sock(sk); 702c2f646d42cf Florian Westphal 2022-05-03 358 702c2f646d42cf Florian Westphal 2022-05-03 359 return found; 702c2f646d42cf Florian Westphal 2022-05-03 360 } 702c2f646d42cf Florian Westphal 2022-05-03 361 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
