lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 16 Nov 2017 10:49:47 +0900 (KST) From: David Miller <davem@...emloft.net> To: lucien.xin@...il.com Cc: netdev@...r.kernel.org, linux-sctp@...r.kernel.org, marcelo.leitner@...il.com, nhorman@...driver.com Subject: Re: [PATCHv2 net] sctp: use the right sk after waking up from wait_buf sleep From: Xin Long <lucien.xin@...il.com> Date: Wed, 15 Nov 2017 16:57:26 +0800 > Commit dfcb9f4f99f1 ("sctp: deny peeloff operation on asocs with threads > sleeping on it") fixed the race between peeloff and wait sndbuf by > checking waitqueue_active(&asoc->wait) in sctp_do_peeloff(). > > But it actually doesn't work, as even if waitqueue_active returns false > the waiting sndbuf thread may still not yet hold sk lock. After asoc is > peeled off, sk is not asoc->base.sk any more, then to hold the old sk > lock couldn't make assoc safe to access. > > This patch is to fix this by changing to hold the new sk lock if sk is > not asoc->base.sk, meanwhile, also set the sk in sctp_sendmsg with the > new sk. > > With this fix, there is no more race between peeloff and waitbuf, the > check 'waitqueue_active' in sctp_do_peeloff can be removed. > > Thanks Marcelo and Neil for making this clear. > > v1->v2: > fix it by changing to lock the new sock instead of adding a flag in asoc. > > Suggested-by: Neil Horman <nhorman@...driver.com> > Signed-off-by: Xin Long <lucien.xin@...il.com> Applied.
Powered by blists - more mailing lists