All of lore.kernel.org
 help / color / mirror / Atom feed
* [mptcp:export 5/10] net/mptcp/subflow.c:512 subflow_syn_recv_sock() error: uninitialized symbol 'subflow_req'.
@ 2020-06-05 19:14 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-06-05 19:14 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 11411 bytes --]

CC: kbuild-all(a)lists.01.org
CC: mptcp(a)lists.01.org
TO: Paolo Abeni <pabeni@redhat.com>

tree:   https://github.com/multipath-tcp/mptcp_net-next.git export
head:   e28f6a7575a0006d0d49de297e23dd915c59ba39
commit: 962c918a1ca2553fac7db45c2a2f9b84fa30a6d9 [5/10] mptcp: refactor token container.
:::::: branch date: 3 hours ago
:::::: commit date: 3 hours ago
config: x86_64-randconfig-m001-20200605 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
net/mptcp/subflow.c:512 subflow_syn_recv_sock() error: uninitialized symbol 'subflow_req'.

# https://github.com/multipath-tcp/mptcp_net-next/commit/962c918a1ca2553fac7db45c2a2f9b84fa30a6d9
git remote add mptcp https://github.com/multipath-tcp/mptcp_net-next.git
git remote update mptcp
git checkout 962c918a1ca2553fac7db45c2a2f9b84fa30a6d9
vim +/subflow_req +512 net/mptcp/subflow.c

39884604b11692 Paolo Abeni      2020-05-29  429  
cec37a6e41aae7 Peter Krystad    2020-01-21  430  static struct sock *subflow_syn_recv_sock(const struct sock *sk,
cec37a6e41aae7 Peter Krystad    2020-01-21  431  					  struct sk_buff *skb,
cec37a6e41aae7 Peter Krystad    2020-01-21  432  					  struct request_sock *req,
cec37a6e41aae7 Peter Krystad    2020-01-21  433  					  struct dst_entry *dst,
cec37a6e41aae7 Peter Krystad    2020-01-21  434  					  struct request_sock *req_unhash,
cec37a6e41aae7 Peter Krystad    2020-01-21  435  					  bool *own_req)
cec37a6e41aae7 Peter Krystad    2020-01-21  436  {
cec37a6e41aae7 Peter Krystad    2020-01-21  437  	struct mptcp_subflow_context *listener = mptcp_subflow_ctx(sk);
cc7972ea193233 Christoph Paasch 2020-01-21  438  	struct mptcp_subflow_request_sock *subflow_req;
cfde141ea3faa3 Paolo Abeni      2020-04-30  439  	struct mptcp_options_received mp_opt;
f296234c98a8fc Peter Krystad    2020-03-27  440  	bool fallback_is_fatal = false;
58b09919626bf9 Paolo Abeni      2020-03-13  441  	struct sock *new_msk = NULL;
4c8941de781cf7 Paolo Abeni      2020-04-20  442  	bool fallback = false;
cec37a6e41aae7 Peter Krystad    2020-01-21  443  	struct sock *child;
cec37a6e41aae7 Peter Krystad    2020-01-21  444  
cec37a6e41aae7 Peter Krystad    2020-01-21  445  	pr_debug("listener=%p, req=%p, conn=%p", listener, req, listener->conn);
cec37a6e41aae7 Peter Krystad    2020-01-21  446  
cfde141ea3faa3 Paolo Abeni      2020-04-30  447  	/* we need later a valid 'mp_capable' value even when options are not
cfde141ea3faa3 Paolo Abeni      2020-04-30  448  	 * parsed
cfde141ea3faa3 Paolo Abeni      2020-04-30  449  	 */
cfde141ea3faa3 Paolo Abeni      2020-04-30  450  	mp_opt.mp_capable = 0;
ae2dd7164943e0 Florian Westphal 2020-01-29  451  	if (tcp_rsk(req)->is_mptcp == 0)
ae2dd7164943e0 Florian Westphal 2020-01-29  452  		goto create_child;
ae2dd7164943e0 Florian Westphal 2020-01-29  453  
d22f4988ffecbe Christoph Paasch 2020-01-21  454  	/* if the sk is MP_CAPABLE, we try to fetch the client key */
cc7972ea193233 Christoph Paasch 2020-01-21  455  	subflow_req = mptcp_subflow_rsk(req);
cc7972ea193233 Christoph Paasch 2020-01-21  456  	if (subflow_req->mp_capable) {
d22f4988ffecbe Christoph Paasch 2020-01-21  457  		if (TCP_SKB_CB(skb)->seq != subflow_req->ssn_offset + 1) {
d22f4988ffecbe Christoph Paasch 2020-01-21  458  			/* here we can receive and accept an in-window,
d22f4988ffecbe Christoph Paasch 2020-01-21  459  			 * out-of-order pkt, which will not carry the MP_CAPABLE
d22f4988ffecbe Christoph Paasch 2020-01-21  460  			 * opt even on mptcp enabled paths
d22f4988ffecbe Christoph Paasch 2020-01-21  461  			 */
58b09919626bf9 Paolo Abeni      2020-03-13  462  			goto create_msk;
d22f4988ffecbe Christoph Paasch 2020-01-21  463  		}
d22f4988ffecbe Christoph Paasch 2020-01-21  464  
cfde141ea3faa3 Paolo Abeni      2020-04-30  465  		mptcp_get_options(skb, &mp_opt);
cfde141ea3faa3 Paolo Abeni      2020-04-30  466  		if (!mp_opt.mp_capable) {
4c8941de781cf7 Paolo Abeni      2020-04-20  467  			fallback = true;
58b09919626bf9 Paolo Abeni      2020-03-13  468  			goto create_child;
d22f4988ffecbe Christoph Paasch 2020-01-21  469  		}
58b09919626bf9 Paolo Abeni      2020-03-13  470  
58b09919626bf9 Paolo Abeni      2020-03-13  471  create_msk:
cfde141ea3faa3 Paolo Abeni      2020-04-30  472  		new_msk = mptcp_sk_clone(listener->conn, &mp_opt, req);
58b09919626bf9 Paolo Abeni      2020-03-13  473  		if (!new_msk)
4c8941de781cf7 Paolo Abeni      2020-04-20  474  			fallback = true;
f296234c98a8fc Peter Krystad    2020-03-27  475  	} else if (subflow_req->mp_join) {
f296234c98a8fc Peter Krystad    2020-03-27  476  		fallback_is_fatal = true;
cfde141ea3faa3 Paolo Abeni      2020-04-30  477  		mptcp_get_options(skb, &mp_opt);
cfde141ea3faa3 Paolo Abeni      2020-04-30  478  		if (!mp_opt.mp_join ||
cfde141ea3faa3 Paolo Abeni      2020-04-30  479  		    !subflow_hmac_valid(req, &mp_opt)) {
fc518953bc9c8d Florian Westphal 2020-03-27  480  			SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKMAC);
f296234c98a8fc Peter Krystad    2020-03-27  481  			return NULL;
cc7972ea193233 Christoph Paasch 2020-01-21  482  		}
fc518953bc9c8d Florian Westphal 2020-03-27  483  	}
cec37a6e41aae7 Peter Krystad    2020-01-21  484  
d22f4988ffecbe Christoph Paasch 2020-01-21  485  create_child:
cec37a6e41aae7 Peter Krystad    2020-01-21  486  	child = listener->icsk_af_ops->syn_recv_sock(sk, skb, req, dst,
cec37a6e41aae7 Peter Krystad    2020-01-21  487  						     req_unhash, own_req);
cec37a6e41aae7 Peter Krystad    2020-01-21  488  
cec37a6e41aae7 Peter Krystad    2020-01-21  489  	if (child && *own_req) {
79c0949e9a09f6 Peter Krystad    2020-01-21  490  		struct mptcp_subflow_context *ctx = mptcp_subflow_ctx(child);
79c0949e9a09f6 Peter Krystad    2020-01-21  491  
90bf45134d55d6 Paolo Abeni      2020-05-15  492  		tcp_rsk(req)->drop_req = false;
90bf45134d55d6 Paolo Abeni      2020-05-15  493  
4c8941de781cf7 Paolo Abeni      2020-04-20  494  		/* we need to fallback on ctx allocation failure and on pre-reqs
4c8941de781cf7 Paolo Abeni      2020-04-20  495  		 * checking above. In the latter scenario we additionally need
4c8941de781cf7 Paolo Abeni      2020-04-20  496  		 * to reset the context to non MPTCP status.
79c0949e9a09f6 Peter Krystad    2020-01-21  497  		 */
4c8941de781cf7 Paolo Abeni      2020-04-20  498  		if (!ctx || fallback) {
f296234c98a8fc Peter Krystad    2020-03-27  499  			if (fallback_is_fatal)
729cd6436f359b Paolo Abeni      2020-05-15  500  				goto dispose_child;
4c8941de781cf7 Paolo Abeni      2020-04-20  501  
39884604b11692 Paolo Abeni      2020-05-29  502  			subflow_drop_ctx(child);
58b09919626bf9 Paolo Abeni      2020-03-13  503  			goto out;
f296234c98a8fc Peter Krystad    2020-03-27  504  		}
79c0949e9a09f6 Peter Krystad    2020-01-21  505  
79c0949e9a09f6 Peter Krystad    2020-01-21  506  		if (ctx->mp_capable) {
58b09919626bf9 Paolo Abeni      2020-03-13  507  			/* new mpc subflow takes ownership of the newly
58b09919626bf9 Paolo Abeni      2020-03-13  508  			 * created mptcp socket
58b09919626bf9 Paolo Abeni      2020-03-13  509  			 */
df1036da90108b Florian Westphal 2020-04-17  510  			new_msk->sk_destruct = mptcp_sock_destruct;
1b1c7a0ef7f323 Peter Krystad    2020-03-27  511  			mptcp_pm_new_connection(mptcp_sk(new_msk), 1);
962c918a1ca255 Paolo Abeni      2020-06-05 @512  			mptcp_token_accept(subflow_req, mptcp_sk(new_msk));
58b09919626bf9 Paolo Abeni      2020-03-13  513  			ctx->conn = new_msk;
58b09919626bf9 Paolo Abeni      2020-03-13  514  			new_msk = NULL;
fca5c82c086ea3 Paolo Abeni      2020-04-20  515  
fca5c82c086ea3 Paolo Abeni      2020-04-20  516  			/* with OoO packets we can reach here without ingress
fca5c82c086ea3 Paolo Abeni      2020-04-20  517  			 * mpc option
fca5c82c086ea3 Paolo Abeni      2020-04-20  518  			 */
cfde141ea3faa3 Paolo Abeni      2020-04-30  519  			ctx->remote_key = mp_opt.sndr_key;
cfde141ea3faa3 Paolo Abeni      2020-04-30  520  			ctx->fully_established = mp_opt.mp_capable;
cfde141ea3faa3 Paolo Abeni      2020-04-30  521  			ctx->can_ack = mp_opt.mp_capable;
f296234c98a8fc Peter Krystad    2020-03-27  522  		} else if (ctx->mp_join) {
f296234c98a8fc Peter Krystad    2020-03-27  523  			struct mptcp_sock *owner;
f296234c98a8fc Peter Krystad    2020-03-27  524  
f296234c98a8fc Peter Krystad    2020-03-27  525  			owner = mptcp_token_get_sock(ctx->token);
f296234c98a8fc Peter Krystad    2020-03-27  526  			if (!owner)
729cd6436f359b Paolo Abeni      2020-05-15  527  				goto dispose_child;
f296234c98a8fc Peter Krystad    2020-03-27  528  
f296234c98a8fc Peter Krystad    2020-03-27  529  			ctx->conn = (struct sock *)owner;
f296234c98a8fc Peter Krystad    2020-03-27  530  			if (!mptcp_finish_join(child))
729cd6436f359b Paolo Abeni      2020-05-15  531  				goto dispose_child;
fc518953bc9c8d Florian Westphal 2020-03-27  532  
fc518953bc9c8d Florian Westphal 2020-03-27  533  			SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKRX);
90bf45134d55d6 Paolo Abeni      2020-05-15  534  			tcp_rsk(req)->drop_req = true;
cec37a6e41aae7 Peter Krystad    2020-01-21  535  		}
cec37a6e41aae7 Peter Krystad    2020-01-21  536  	}
cec37a6e41aae7 Peter Krystad    2020-01-21  537  
58b09919626bf9 Paolo Abeni      2020-03-13  538  out:
58b09919626bf9 Paolo Abeni      2020-03-13  539  	/* dispose of the left over mptcp master, if any */
58b09919626bf9 Paolo Abeni      2020-03-13  540  	if (unlikely(new_msk))
9f5ca6a59816b4 Florian Westphal 2020-04-17  541  		mptcp_force_close(new_msk);
4c8941de781cf7 Paolo Abeni      2020-04-20  542  
4c8941de781cf7 Paolo Abeni      2020-04-20  543  	/* check for expected invariant - should never trigger, just help
4c8941de781cf7 Paolo Abeni      2020-04-20  544  	 * catching eariler subtle bugs
4c8941de781cf7 Paolo Abeni      2020-04-20  545  	 */
ac2b47fb92c506 Paolo Abeni      2020-04-30  546  	WARN_ON_ONCE(child && *own_req && tcp_sk(child)->is_mptcp &&
4c8941de781cf7 Paolo Abeni      2020-04-20  547  		     (!mptcp_subflow_ctx(child) ||
4c8941de781cf7 Paolo Abeni      2020-04-20  548  		      !mptcp_subflow_ctx(child)->conn));
cec37a6e41aae7 Peter Krystad    2020-01-21  549  	return child;
f296234c98a8fc Peter Krystad    2020-03-27  550  
729cd6436f359b Paolo Abeni      2020-05-15  551  dispose_child:
39884604b11692 Paolo Abeni      2020-05-29  552  	subflow_drop_ctx(child);
729cd6436f359b Paolo Abeni      2020-05-15  553  	tcp_rsk(req)->drop_req = true;
f296234c98a8fc Peter Krystad    2020-03-27  554  	tcp_send_active_reset(child, GFP_ATOMIC);
729cd6436f359b Paolo Abeni      2020-05-15  555  	inet_csk_prepare_for_destroy_sock(child);
f296234c98a8fc Peter Krystad    2020-03-27  556  	tcp_done(child);
729cd6436f359b Paolo Abeni      2020-05-15  557  
729cd6436f359b Paolo Abeni      2020-05-15  558  	/* The last child reference will be released by the caller */
729cd6436f359b Paolo Abeni      2020-05-15  559  	return child;
cec37a6e41aae7 Peter Krystad    2020-01-21  560  }
cec37a6e41aae7 Peter Krystad    2020-01-21  561  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32022 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [mptcp:export 5/10] net/mptcp/subflow.c:512 subflow_syn_recv_sock() error: uninitialized symbol 'subflow_req'.
  2020-06-08 13:29 [MPTCP] Re: [kbuild] " Paolo Abeni
@ 2020-06-08 13:34 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-06-08 13:34 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 358 bytes --]

On Mon, Jun 08, 2020 at 03:29:12PM +0200, Paolo Abeni wrote:
> BTW I'll be curious to learn how this report has been created?!? Are
> you using a kbuild bot instance to run smack on mptcp export branch ?!?
> 

The kbuild bot run Smatch on whatever trees it can find.  Then I look it
over and forward to ignore the warnings.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [mptcp:export 5/10] net/mptcp/subflow.c:512 subflow_syn_recv_sock() error: uninitialized symbol 'subflow_req'.
@ 2020-06-08 13:15 Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-06-08 13:15 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 11693 bytes --]

tree:   https://github.com/multipath-tcp/mptcp_net-next.git export
head:   e28f6a7575a0006d0d49de297e23dd915c59ba39
commit: 962c918a1ca2553fac7db45c2a2f9b84fa30a6d9 [5/10] mptcp: refactor token container.
config: x86_64-randconfig-m001-20200605 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
net/mptcp/subflow.c:512 subflow_syn_recv_sock() error: uninitialized symbol 'subflow_req'.

# https://github.com/multipath-tcp/mptcp_net-next/commit/962c918a1ca2553fac7db45c2a2f9b84fa30a6d9
git remote add mptcp https://github.com/multipath-tcp/mptcp_net-next.git
git remote update mptcp
git checkout 962c918a1ca2553fac7db45c2a2f9b84fa30a6d9
vim +/subflow_req +512 net/mptcp/subflow.c

cec37a6e41aae7 Peter Krystad    2020-01-21  430  static struct sock *subflow_syn_recv_sock(const struct sock *sk,
cec37a6e41aae7 Peter Krystad    2020-01-21  431  					  struct sk_buff *skb,
cec37a6e41aae7 Peter Krystad    2020-01-21  432  					  struct request_sock *req,
cec37a6e41aae7 Peter Krystad    2020-01-21  433  					  struct dst_entry *dst,
cec37a6e41aae7 Peter Krystad    2020-01-21  434  					  struct request_sock *req_unhash,
cec37a6e41aae7 Peter Krystad    2020-01-21  435  					  bool *own_req)
cec37a6e41aae7 Peter Krystad    2020-01-21  436  {
cec37a6e41aae7 Peter Krystad    2020-01-21  437  	struct mptcp_subflow_context *listener = mptcp_subflow_ctx(sk);
cc7972ea193233 Christoph Paasch 2020-01-21  438  	struct mptcp_subflow_request_sock *subflow_req;
                                                                                           ^^^^^^^^^^^

cfde141ea3faa3 Paolo Abeni      2020-04-30  439  	struct mptcp_options_received mp_opt;
f296234c98a8fc Peter Krystad    2020-03-27  440  	bool fallback_is_fatal = false;
58b09919626bf9 Paolo Abeni      2020-03-13  441  	struct sock *new_msk = NULL;
4c8941de781cf7 Paolo Abeni      2020-04-20  442  	bool fallback = false;
cec37a6e41aae7 Peter Krystad    2020-01-21  443  	struct sock *child;
cec37a6e41aae7 Peter Krystad    2020-01-21  444  
cec37a6e41aae7 Peter Krystad    2020-01-21  445  	pr_debug("listener=%p, req=%p, conn=%p", listener, req, listener->conn);
cec37a6e41aae7 Peter Krystad    2020-01-21  446  
cfde141ea3faa3 Paolo Abeni      2020-04-30  447  	/* we need later a valid 'mp_capable' value even when options are not
cfde141ea3faa3 Paolo Abeni      2020-04-30  448  	 * parsed
cfde141ea3faa3 Paolo Abeni      2020-04-30  449  	 */
cfde141ea3faa3 Paolo Abeni      2020-04-30  450  	mp_opt.mp_capable = 0;
ae2dd7164943e0 Florian Westphal 2020-01-29  451  	if (tcp_rsk(req)->is_mptcp == 0)
ae2dd7164943e0 Florian Westphal 2020-01-29  452  		goto create_child;
                                                                ^^^^^^^^^^^^^^^^^

ae2dd7164943e0 Florian Westphal 2020-01-29  453  
d22f4988ffecbe Christoph Paasch 2020-01-21  454  	/* if the sk is MP_CAPABLE, we try to fetch the client key */
cc7972ea193233 Christoph Paasch 2020-01-21  455  	subflow_req = mptcp_subflow_rsk(req);
cc7972ea193233 Christoph Paasch 2020-01-21  456  	if (subflow_req->mp_capable) {
d22f4988ffecbe Christoph Paasch 2020-01-21  457  		if (TCP_SKB_CB(skb)->seq != subflow_req->ssn_offset + 1) {
d22f4988ffecbe Christoph Paasch 2020-01-21  458  			/* here we can receive and accept an in-window,
d22f4988ffecbe Christoph Paasch 2020-01-21  459  			 * out-of-order pkt, which will not carry the MP_CAPABLE
d22f4988ffecbe Christoph Paasch 2020-01-21  460  			 * opt even on mptcp enabled paths
d22f4988ffecbe Christoph Paasch 2020-01-21  461  			 */
58b09919626bf9 Paolo Abeni      2020-03-13  462  			goto create_msk;
d22f4988ffecbe Christoph Paasch 2020-01-21  463  		}
d22f4988ffecbe Christoph Paasch 2020-01-21  464  
cfde141ea3faa3 Paolo Abeni      2020-04-30  465  		mptcp_get_options(skb, &mp_opt);
cfde141ea3faa3 Paolo Abeni      2020-04-30  466  		if (!mp_opt.mp_capable) {
4c8941de781cf7 Paolo Abeni      2020-04-20  467  			fallback = true;
58b09919626bf9 Paolo Abeni      2020-03-13  468  			goto create_child;
d22f4988ffecbe Christoph Paasch 2020-01-21  469  		}
58b09919626bf9 Paolo Abeni      2020-03-13  470  
58b09919626bf9 Paolo Abeni      2020-03-13  471  create_msk:
cfde141ea3faa3 Paolo Abeni      2020-04-30  472  		new_msk = mptcp_sk_clone(listener->conn, &mp_opt, req);
58b09919626bf9 Paolo Abeni      2020-03-13  473  		if (!new_msk)
4c8941de781cf7 Paolo Abeni      2020-04-20  474  			fallback = true;
f296234c98a8fc Peter Krystad    2020-03-27  475  	} else if (subflow_req->mp_join) {
f296234c98a8fc Peter Krystad    2020-03-27  476  		fallback_is_fatal = true;
cfde141ea3faa3 Paolo Abeni      2020-04-30  477  		mptcp_get_options(skb, &mp_opt);
cfde141ea3faa3 Paolo Abeni      2020-04-30  478  		if (!mp_opt.mp_join ||
cfde141ea3faa3 Paolo Abeni      2020-04-30  479  		    !subflow_hmac_valid(req, &mp_opt)) {
fc518953bc9c8d Florian Westphal 2020-03-27  480  			SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKMAC);
f296234c98a8fc Peter Krystad    2020-03-27  481  			return NULL;
cc7972ea193233 Christoph Paasch 2020-01-21  482  		}
fc518953bc9c8d Florian Westphal 2020-03-27  483  	}
cec37a6e41aae7 Peter Krystad    2020-01-21  484  
d22f4988ffecbe Christoph Paasch 2020-01-21  485  create_child:
                                                 ^^^^^^^^^^^^

cec37a6e41aae7 Peter Krystad    2020-01-21  486  	child = listener->icsk_af_ops->syn_recv_sock(sk, skb, req, dst,
cec37a6e41aae7 Peter Krystad    2020-01-21  487  						     req_unhash, own_req);
cec37a6e41aae7 Peter Krystad    2020-01-21  488  
cec37a6e41aae7 Peter Krystad    2020-01-21  489  	if (child && *own_req) {
79c0949e9a09f6 Peter Krystad    2020-01-21  490  		struct mptcp_subflow_context *ctx = mptcp_subflow_ctx(child);
79c0949e9a09f6 Peter Krystad    2020-01-21  491  
90bf45134d55d6 Paolo Abeni      2020-05-15  492  		tcp_rsk(req)->drop_req = false;
90bf45134d55d6 Paolo Abeni      2020-05-15  493  
4c8941de781cf7 Paolo Abeni      2020-04-20  494  		/* we need to fallback on ctx allocation failure and on pre-reqs
4c8941de781cf7 Paolo Abeni      2020-04-20  495  		 * checking above. In the latter scenario we additionally need
4c8941de781cf7 Paolo Abeni      2020-04-20  496  		 * to reset the context to non MPTCP status.
79c0949e9a09f6 Peter Krystad    2020-01-21  497  		 */
4c8941de781cf7 Paolo Abeni      2020-04-20  498  		if (!ctx || fallback) {
f296234c98a8fc Peter Krystad    2020-03-27  499  			if (fallback_is_fatal)
729cd6436f359b Paolo Abeni      2020-05-15  500  				goto dispose_child;
4c8941de781cf7 Paolo Abeni      2020-04-20  501  
39884604b11692 Paolo Abeni      2020-05-29  502  			subflow_drop_ctx(child);
58b09919626bf9 Paolo Abeni      2020-03-13  503  			goto out;
f296234c98a8fc Peter Krystad    2020-03-27  504  		}
79c0949e9a09f6 Peter Krystad    2020-01-21  505  
79c0949e9a09f6 Peter Krystad    2020-01-21  506  		if (ctx->mp_capable) {
58b09919626bf9 Paolo Abeni      2020-03-13  507  			/* new mpc subflow takes ownership of the newly
58b09919626bf9 Paolo Abeni      2020-03-13  508  			 * created mptcp socket
58b09919626bf9 Paolo Abeni      2020-03-13  509  			 */
df1036da90108b Florian Westphal 2020-04-17  510  			new_msk->sk_destruct = mptcp_sock_destruct;
1b1c7a0ef7f323 Peter Krystad    2020-03-27  511  			mptcp_pm_new_connection(mptcp_sk(new_msk), 1);
962c918a1ca255 Paolo Abeni      2020-06-05 @512  			mptcp_token_accept(subflow_req, mptcp_sk(new_msk));
                                                                                           ^^^^^^^^^^^
Potential uninitialized?

58b09919626bf9 Paolo Abeni      2020-03-13  513  			ctx->conn = new_msk;
58b09919626bf9 Paolo Abeni      2020-03-13  514  			new_msk = NULL;
fca5c82c086ea3 Paolo Abeni      2020-04-20  515  
fca5c82c086ea3 Paolo Abeni      2020-04-20  516  			/* with OoO packets we can reach here without ingress
fca5c82c086ea3 Paolo Abeni      2020-04-20  517  			 * mpc option
fca5c82c086ea3 Paolo Abeni      2020-04-20  518  			 */
cfde141ea3faa3 Paolo Abeni      2020-04-30  519  			ctx->remote_key = mp_opt.sndr_key;
cfde141ea3faa3 Paolo Abeni      2020-04-30  520  			ctx->fully_established = mp_opt.mp_capable;
cfde141ea3faa3 Paolo Abeni      2020-04-30  521  			ctx->can_ack = mp_opt.mp_capable;
f296234c98a8fc Peter Krystad    2020-03-27  522  		} else if (ctx->mp_join) {
f296234c98a8fc Peter Krystad    2020-03-27  523  			struct mptcp_sock *owner;
f296234c98a8fc Peter Krystad    2020-03-27  524  
f296234c98a8fc Peter Krystad    2020-03-27  525  			owner = mptcp_token_get_sock(ctx->token);
f296234c98a8fc Peter Krystad    2020-03-27  526  			if (!owner)
729cd6436f359b Paolo Abeni      2020-05-15  527  				goto dispose_child;
f296234c98a8fc Peter Krystad    2020-03-27  528  
f296234c98a8fc Peter Krystad    2020-03-27  529  			ctx->conn = (struct sock *)owner;
f296234c98a8fc Peter Krystad    2020-03-27  530  			if (!mptcp_finish_join(child))
729cd6436f359b Paolo Abeni      2020-05-15  531  				goto dispose_child;
fc518953bc9c8d Florian Westphal 2020-03-27  532  
fc518953bc9c8d Florian Westphal 2020-03-27  533  			SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKRX);
90bf45134d55d6 Paolo Abeni      2020-05-15  534  			tcp_rsk(req)->drop_req = true;
cec37a6e41aae7 Peter Krystad    2020-01-21  535  		}
cec37a6e41aae7 Peter Krystad    2020-01-21  536  	}
cec37a6e41aae7 Peter Krystad    2020-01-21  537  
58b09919626bf9 Paolo Abeni      2020-03-13  538  out:
58b09919626bf9 Paolo Abeni      2020-03-13  539  	/* dispose of the left over mptcp master, if any */
58b09919626bf9 Paolo Abeni      2020-03-13  540  	if (unlikely(new_msk))
9f5ca6a59816b4 Florian Westphal 2020-04-17  541  		mptcp_force_close(new_msk);
4c8941de781cf7 Paolo Abeni      2020-04-20  542  
4c8941de781cf7 Paolo Abeni      2020-04-20  543  	/* check for expected invariant - should never trigger, just help
4c8941de781cf7 Paolo Abeni      2020-04-20  544  	 * catching eariler subtle bugs
4c8941de781cf7 Paolo Abeni      2020-04-20  545  	 */
ac2b47fb92c506 Paolo Abeni      2020-04-30  546  	WARN_ON_ONCE(child && *own_req && tcp_sk(child)->is_mptcp &&
4c8941de781cf7 Paolo Abeni      2020-04-20  547  		     (!mptcp_subflow_ctx(child) ||
4c8941de781cf7 Paolo Abeni      2020-04-20  548  		      !mptcp_subflow_ctx(child)->conn));
cec37a6e41aae7 Peter Krystad    2020-01-21  549  	return child;
f296234c98a8fc Peter Krystad    2020-03-27  550  
729cd6436f359b Paolo Abeni      2020-05-15  551  dispose_child:
39884604b11692 Paolo Abeni      2020-05-29  552  	subflow_drop_ctx(child);
729cd6436f359b Paolo Abeni      2020-05-15  553  	tcp_rsk(req)->drop_req = true;
f296234c98a8fc Peter Krystad    2020-03-27  554  	tcp_send_active_reset(child, GFP_ATOMIC);
729cd6436f359b Paolo Abeni      2020-05-15  555  	inet_csk_prepare_for_destroy_sock(child);
f296234c98a8fc Peter Krystad    2020-03-27  556  	tcp_done(child);
729cd6436f359b Paolo Abeni      2020-05-15  557  
729cd6436f359b Paolo Abeni      2020-05-15  558  	/* The last child reference will be released by the caller */
729cd6436f359b Paolo Abeni      2020-05-15  559  	return child;
cec37a6e41aae7 Peter Krystad    2020-01-21  560  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32022 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-06-08 13:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-05 19:14 [mptcp:export 5/10] net/mptcp/subflow.c:512 subflow_syn_recv_sock() error: uninitialized symbol 'subflow_req' kernel test robot
2020-06-08 13:15 Dan Carpenter
2020-06-08 13:29 [MPTCP] Re: [kbuild] " Paolo Abeni
2020-06-08 13:34 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.