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: Sat, 3 Feb 2007 20:15:24 -0800 From: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com> To: linux-kernel@...r.kernel.org Cc: oleg@...sign.ru, akpm@...ux-foundation.org, johnstul@...ibm.com, mingo@...e.hu, tglx@...utronix.de, zippel@...ux-m68k.org Subject: [PATCH] POSIX timers RCU optimization fix for clock_gettime Fixes an exit()/posix_cpu_clock_get() race spotted by Oleg Nesterov. Solution is to move the p->signal check under the tasklist_lock. Signed-off-by: Paul E. McKenney <paulmck@...ux.vnet.ibm.com> --- posix-cpu-timers.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff -urpNa -X dontdiff linux-2.6.20-rc6-clockrcu/kernel/posix-cpu-timers.c linux-2.6.20-rc6-clockrcu-fixes/kernel/posix-cpu-timers.c --- linux-2.6.20-rc6-clockrcu/kernel/posix-cpu-timers.c 2007-02-01 13:03:57.000000000 -0800 +++ linux-2.6.20-rc6-clockrcu-fixes/kernel/posix-cpu-timers.c 2007-02-03 16:53:41.000000000 -0800 @@ -312,10 +312,13 @@ int posix_cpu_clock_get(const clockid_t error = cpu_clock_sample(which_clock, p, &rtn); } - } else if (p->tgid == pid && p->signal) { + } else { read_lock(&tasklist_lock); - error = cpu_clock_sample_group(which_clock, - p, &rtn); + if (p->tgid == pid && p->signal) { + error = + cpu_clock_sample_group(which_clock, + p, &rtn); + } read_unlock(&tasklist_lock); } } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists