[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170221.132449.1868705782244690263.davem@davemloft.net>
Date: Tue, 21 Feb 2017 13:24:49 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: aryabinin@...tuozzo.com
Cc: gerrit@....abdn.ac.uk, dccp@...r.kernel.org, dvyukov@...gle.com,
edumazet@...gle.com, xiyou.wangcong@...il.com,
kuznet@....inr.ac.ru, yoshfuji@...ux-ipv6.org, kaber@...sh.net,
syzkaller@...glegroups.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] net/dccp: fix use after free in tw_timer_handler()
From: David Miller <davem@...emloft.net>
Date: Tue, 21 Feb 2017 13:23:51 -0500 (EST)
> From: Andrey Ryabinin <aryabinin@...tuozzo.com>
> Date: Tue, 21 Feb 2017 14:27:40 +0300
>
>> DCCP doesn't purge timewait sockets on network namespace shutdown.
>> So, after net namespace destroyed we could still have an active timer
>> which will trigger use after free in tw_timer_handler():
> ...
>> Add .exit_batch hook to dccp_v4_ops()/dccp_v6_ops() which will purge
>> timewait sockets on net namespace destruction and prevent above issue.
>>
>> Reported-by: Dmitry Vyukov <dvyukov@...gle.com>
>> Signed-off-by: Andrey Ryabinin <aryabinin@...tuozzo.com>
>
> Applied and queued up for -stable, thanks.
Actually, this doesn't even compile. Please fix this up and resubmit:
net/dccp/ipv4.c: In function ‘dccp_v4_exit_batch’:
net/dccp/ipv4.c:1022:34: warning: passing argument 2 of ‘inet_twsk_purge’ makes integer from pointer without a cast [-Wint-conversion]
inet_twsk_purge(&dccp_hashinfo, &dccp_death_row, AF_INET);
^
In file included from ./include/linux/dccp.h:14:0,
from net/dccp/ipv4.c:13:
./include/net/inet_timewait_sock.h:118:6: note: expected ‘int’ but argument is of type ‘struct inet_timewait_death_row *’
void inet_twsk_purge(struct inet_hashinfo *hashinfo, int family);
^
net/dccp/ipv4.c:1022:2: error: too many arguments to function ‘inet_twsk_purge’
inet_twsk_purge(&dccp_hashinfo, &dccp_death_row, AF_INET);
^
Powered by blists - more mailing lists