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: Tue, 29 Sep 2009 12:09:08 +0900 From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com> To: Li Zefan <lizf@...fujitsu.com> Cc: linux-kernel@...r.kernel.org, "akpm@...ux-foundation.org" <akpm@...ux-foundation.org>, mingo@...e.hu, "balbir@...ux.vnet.ibm.com" <balbir@...ux.vnet.ibm.com>, "nishimura@....nes.nec.co.jp" <nishimura@....nes.nec.co.jp>, "menage@...gle.com" <menage@...gle.com> Subject: [PATCH][rc1] cgroup: catch bad css refcnt at css_put v2 __css_put() doesn't check a buggy case as refcnt goes to minus. This patch adds a check for it. Changelog: - using WARN_ON_ONCE() instead of WARN_ON() Acked-by: Paul Menage <menage@...gle.com> Acked-by: Li Zefan <lizf@...fujitsu.com> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com> --- kernel/cgroup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6.32-rc1/kernel/cgroup.c =================================================================== --- linux-2.6.32-rc1.orig/kernel/cgroup.c +++ linux-2.6.32-rc1/kernel/cgroup.c @@ -3708,8 +3708,10 @@ static void check_for_release(struct cgr void __css_put(struct cgroup_subsys_state *css) { struct cgroup *cgrp = css->cgroup; + int val; rcu_read_lock(); - if (atomic_dec_return(&css->refcnt) == 1) { + val = atomic_dec_return(&css->refcnt); + if (val == 1) { if (notify_on_release(cgrp)) { set_bit(CGRP_RELEASABLE, &cgrp->flags); check_for_release(cgrp); @@ -3717,6 +3719,7 @@ void __css_put(struct cgroup_subsys_stat cgroup_wakeup_rmdir_waiter(cgrp); } rcu_read_unlock(); + WARN_ON_ONCE(val < 1); } /* -- 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