] cgroup_bpf_inherit+0x44/0x24c
[<1f03679c>] cgroup_setup_root+0x174/0x37c []
cgroup1_get_tree+0x2c0/0x4a0 [] vfs_get_tree+0x24/0x108
[] path_mount+0x384/0x988 [] do_mount+0x64/0x9c
[<208c9cfe>] sys_mount+0xfc/0x1f4 [<06dd06e0>]
ret_fast_syscall+0x0/0x48 [] 0xbeb4daa8 This is because that
since the commit 2b0d3d3e4fcf ("percpu_ref: reduce memory footprint of
percpu_ref in fast path") root_cgrp->bpf.refcnt.data is allocated by
the function percpu_ref_init in cgroup_bpf_inherit which is called by
cgroup_setup_root when mounting, but not freed along with root_cgrp
when umounting. Adding cgroup_bpf_offline which calls percpu_ref_kill
to cgroup_kill_sb can free root_cgrp->bpf.refcnt.data in umount path.
This patch also fixes the commit 4bfc0bb2c60e ("bpf: decouple the
lifetime of cgroup_bpf from cgroup itself"). A cgroup_bpf_offline is
needed to do a cleanup that frees the resources which are allocated by
cgroup_bpf_inherit in cgroup_setup_root. And inside
cgroup_bpf_offline, cgroup_get() is at the beginning and cgroup_put is
at the end of cgroup_bpf_release which is called by
cgroup_bpf_offline. So cgroup_bpf_offline can keep the balance of
cgroup's refcount.
">
],cgroup_bpf_inherit+0x44/0x24c
[<1f03679c>],cgroup_setup_root+0x174/0x37c,[]
cgroup1_get_tree+0x2c0/0x4a0,[],vfs_get_tree+0x24/0x108
[],path_mount+0x384/0x988,[],do_mount+0x64/0x9c
[<208c9cfe>],sys_mount+0xfc/0x1f4,[<06dd06e0>]
ret_fast_syscall+0x0/0x48,[],0xbeb4daa8,This,is,because,that
since,the,commit,2b0d3d3e4fcf,("percpu_ref:,reduce,memory,footprint,of
percpu_ref,in,fast,path"),root_cgrp->bpf.refcnt.data,is,allocated,by
the,function,percpu_ref_init,in,cgroup_bpf_inherit,which,is,called,by
cgroup_setup_root,when,mounting,,but,not,freed,along,with,root_cgrp
when,umounting.,Adding,cgroup_bpf_offline,which,calls,percpu_ref_kill
to,cgroup_kill_sb,can,free,root_cgrp->bpf.refcnt.data,in,umount,path.
This,patch,also,fixes,the,commit,4bfc0bb2c60e,("bpf:,decouple,the
lifetime,of,cgroup_bpf,from,cgroup,itself").,A,cgroup_bpf_offline,is
needed,to,do,a,cleanup,that,frees,the,resources,which,are,allocated,by
cgroup_bpf_inherit,in,cgroup_setup_root.,And,inside
cgroup_bpf_offline,,cgroup_get(),is,at,the,beginning,and,cgroup_put,is
at,the,end,of,cgroup_bpf_release,which,is,called,by
cgroup_bpf_offline.,So,cgroup_bpf_offline,can,keep,the,balance,of
cgroup's,refcount.
">
SecuritySpace - CVE-2021-47488
▼
|
 |
Bookkeeping Online ▼
Home
Free Trial
FAQ
Open/Create Company File
Accept an Invite
Order/Renew
|
|
© 1998-2025 E-Soft Inc. All rights reserved.