Thread (11 messages) 11 messages, 3 authors, 2017-12-05

RE: [Patch net v2] tipc: fix a null pointer deref on error path

flat view

From: Jon Maloy <hidden>
Date: 2017-12-04 20:32:59

-----Original Message-----
From: netdev-owner@vger.kernel.org [mailto:netdev-
owner@vger.kernel.org] On Behalf Of Jon Maloy
Sent: Monday, December 04, 2017 14:50
To: Cong Wang <redacted>; David Miller
[off-list ref]
Cc: Linux Kernel Network Developers <redacted>; tipc-
discussion@lists.sourceforge.net; Ying Xue [off-list ref]
Subject: RE: [Patch net v2] tipc: fix a null pointer deref on error path


quoted
-----Original Message-----
From: Cong Wang [mailto:xiyou.wangcong@gmail.com]
Sent: Monday, December 04, 2017 14:41
To: David Miller <davem@davemloft.net>
Cc: Linux Kernel Network Developers <redacted>; tipc-
discussion@lists.sourceforge.net; Jon Maloy [off-list ref];
Ying Xue [off-list ref]
Subject: Re: [Patch net v2] tipc: fix a null pointer deref on error
path

On Mon, Dec 4, 2017 at 11:23 AM, Cong Wang
[off-list ref]
quoted
wrote:
quoted
On Mon, Dec 4, 2017 at 10:57 AM, David Miller [off-list ref]
wrote:
quoted
quoted
It looks like tipc_accept_from_sock() has a similar problem?  The
tipc_close_conn() will get invoked indirectly from the
sock_release() path right?
Not sure, the sock_release() in tipc_accept_from_sock() is for
kernel_accept(), not for tipc_alloc_conn(). Or maybe it is hiding
deep in the call chain that I miss?
I see:

tipc_release() ->  tipc_sk_leave() -> tipc_group_delete()
-> tipc_topsrv_kern_unsubscr() -> tipc_close_conn()

Seems on this path we do need to skip NULL too.
You are right. The right solution is to just call conn_put() twice here.
I already have a patch ready for this, but it is part of a series that needs more
review.
I should probably post it separately...
Well, calling conn_put() twice was ok in my series, but in the current upstream version it is not enough.
I will find a different short term solution.

///jon
///jon
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help