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 19:49:58

-----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]
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...

///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