From: Serge Hallyn <serge.hallyn@canonical.com> To: Aristeu Rozanski <aris@redhat.com> Cc: linux-kernel@vger.kernel.org, Dave Jones <davej@redhat.com>, Andrew Morton <akpm@linux-foundation.org>, Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>, James Morris <jmorris@namei.org>, Pavel Emelyanov <xemul@openvz.org>, Jiri Slaby <jslaby@suse.cz>, cgroups@vger.kernel.org Subject: Re: [PATCH 4/4] device_cgroup: add proper checking when changing default behavior Date: Mon, 22 Oct 2012 11:16:10 -0500 [thread overview] Message-ID: <20121022161610.GD23199@sergelap> (raw) In-Reply-To: <20121022134537.447117744@napanee.usersys.redhat.com> Quoting Aristeu Rozanski (aris@redhat.com): > Before changing a group's default behavior to ALLOW, we must check if its > parent's behavior is also ALLOW. > > Cc: Tejun Heo <tj@kernel.org> > Cc: Li Zefan <lizefan@huawei.com> > Cc: James Morris <jmorris@namei.org> > Cc: Pavel Emelyanov <xemul@openvz.org> > Cc: Serge Hallyn <serge.hallyn@canonical.com> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com> Thanks, Aristeu. > Cc: Jiri Slaby <jslaby@suse.cz> > Signed-off-by: Aristeu Rozanski <aris@redhat.com> > > --- > security/device_cgroup.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > --- github.orig/security/device_cgroup.c 2012-10-19 16:36:50.135790476 -0400 > +++ github/security/device_cgroup.c 2012-10-19 16:48:50.710978125 -0400 > @@ -344,6 +344,17 @@ static int parent_has_perm(struct dev_cg > return may_access(parent, ex); > } > > +/** > + * may_allow_all - checks if it's possible to change the behavior to > + * allow based on parent's rules. > + * @parent: device cgroup's parent > + * returns: != 0 in case it's allowed, 0 otherwise > + */ > +static inline int may_allow_all(struct dev_cgroup *parent) > +{ > + return parent->behavior == DEVCG_DEFAULT_ALLOW; > +} > + > /* > * Modify the exception list using allow/deny rules. > * CAP_SYS_ADMIN is needed for this. It's at least separate from CAP_MKNOD > @@ -364,6 +375,8 @@ static int devcgroup_update_access(struc > char temp[12]; /* 11 + 1 characters needed for a u32 */ > int count, rc; > struct dev_exception_item ex; > + struct cgroup *p = devcgroup->css.cgroup; > + struct dev_cgroup *parent = cgroup_to_devcgroup(p->parent); > > if (!capable(CAP_SYS_ADMIN)) > return -EPERM; > @@ -375,9 +388,13 @@ memset(&ex, 0, sizeof(ex)); > case 'a': > switch (filetype) { > case DEVCG_ALLOW: > - if (!parent_has_perm(devcgroup, &ex)) > + if (!may_allow_all(parent)) > return -EPERM; > dev_exception_clean(devcgroup); > + rc = dev_exceptions_copy(&devcgroup->exceptions, > + &parent->exceptions); > + if (rc) > + return rc; > devcgroup->behavior = DEVCG_DEFAULT_ALLOW; > break; > case DEVCG_DENY: >
WARNING: multiple messages have this Message-ID (diff)
From: Serge Hallyn <serge.hallyn-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org> To: Aristeu Rozanski <aris-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Dave Jones <davej-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>, Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>, James Morris <jmorris-gx6/JNMH7DfYtjvyW6yDsg@public.gmane.org>, Pavel Emelyanov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>, Jiri Slaby <jslaby-AlSwsSmVLrQ@public.gmane.org>, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: Re: [PATCH 4/4] device_cgroup: add proper checking when changing default behavior Date: Mon, 22 Oct 2012 11:16:10 -0500 [thread overview] Message-ID: <20121022161610.GD23199@sergelap> (raw) In-Reply-To: <20121022134537.447117744-cd6kKtb6gxi3M6m420IelR/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> Quoting Aristeu Rozanski (aris-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org): > Before changing a group's default behavior to ALLOW, we must check if its > parent's behavior is also ALLOW. > > Cc: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > Cc: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> > Cc: James Morris <jmorris-gx6/JNMH7DfYtjvyW6yDsg@public.gmane.org> > Cc: Pavel Emelyanov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org> > Cc: Serge Hallyn <serge.hallyn-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org> Acked-by: Serge E. Hallyn <serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org> Thanks, Aristeu. > Cc: Jiri Slaby <jslaby-AlSwsSmVLrQ@public.gmane.org> > Signed-off-by: Aristeu Rozanski <aris-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > > --- > security/device_cgroup.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > --- github.orig/security/device_cgroup.c 2012-10-19 16:36:50.135790476 -0400 > +++ github/security/device_cgroup.c 2012-10-19 16:48:50.710978125 -0400 > @@ -344,6 +344,17 @@ static int parent_has_perm(struct dev_cg > return may_access(parent, ex); > } > > +/** > + * may_allow_all - checks if it's possible to change the behavior to > + * allow based on parent's rules. > + * @parent: device cgroup's parent > + * returns: != 0 in case it's allowed, 0 otherwise > + */ > +static inline int may_allow_all(struct dev_cgroup *parent) > +{ > + return parent->behavior == DEVCG_DEFAULT_ALLOW; > +} > + > /* > * Modify the exception list using allow/deny rules. > * CAP_SYS_ADMIN is needed for this. It's at least separate from CAP_MKNOD > @@ -364,6 +375,8 @@ static int devcgroup_update_access(struc > char temp[12]; /* 11 + 1 characters needed for a u32 */ > int count, rc; > struct dev_exception_item ex; > + struct cgroup *p = devcgroup->css.cgroup; > + struct dev_cgroup *parent = cgroup_to_devcgroup(p->parent); > > if (!capable(CAP_SYS_ADMIN)) > return -EPERM; > @@ -375,9 +388,13 @@ memset(&ex, 0, sizeof(ex)); > case 'a': > switch (filetype) { > case DEVCG_ALLOW: > - if (!parent_has_perm(devcgroup, &ex)) > + if (!may_allow_all(parent)) > return -EPERM; > dev_exception_clean(devcgroup); > + rc = dev_exceptions_copy(&devcgroup->exceptions, > + &parent->exceptions); > + if (rc) > + return rc; > devcgroup->behavior = DEVCG_DEFAULT_ALLOW; > break; > case DEVCG_DENY: >
next prev parent reply other threads:[~2012-10-22 16:16 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-10-22 13:45 [PATCH 0/4] Rebase device_cgroup v2 patchset Aristeu Rozanski 2012-10-22 13:45 ` [PATCH 1/4] cgroup: fix invalid rcu dereference Aristeu Rozanski 2012-10-22 16:11 ` Serge Hallyn 2012-10-22 16:11 ` Serge Hallyn 2012-10-23 12:50 ` Jiri Slaby 2012-10-23 12:50 ` Jiri Slaby 2012-10-23 13:17 ` Aristeu Rozanski 2012-10-23 13:17 ` Aristeu Rozanski 2012-10-23 13:53 ` Jiri Slaby 2012-10-23 13:53 ` Jiri Slaby 2012-10-22 13:45 ` [PATCH 2/4] device_cgroup: rename deny_all to behavior Aristeu Rozanski 2012-10-22 16:12 ` Serge Hallyn 2012-10-22 13:45 ` [PATCH 3/4] device_cgroup: stop using simple_strtoul() Aristeu Rozanski 2012-10-22 16:14 ` Serge Hallyn 2012-10-22 16:14 ` Serge Hallyn 2012-10-22 13:45 ` [PATCH 4/4] device_cgroup: add proper checking when changing default behavior Aristeu Rozanski 2012-10-22 16:16 ` Serge Hallyn [this message] 2012-10-22 16:16 ` Serge Hallyn 2012-10-22 19:58 ` [PATCH 0/4] Rebase device_cgroup v2 patchset Andrew Morton 2012-10-22 19:58 ` Andrew Morton 2012-10-22 20:14 ` Aristeu Rozanski 2012-10-22 20:14 ` Aristeu Rozanski 2013-05-14 15:05 ` Serge Hallyn 2013-05-14 15:51 ` Aristeu Rozanski 2013-05-14 15:51 ` Aristeu Rozanski 2013-05-14 16:22 ` Serge Hallyn 2013-05-14 16:22 ` Serge Hallyn 2013-05-14 21:02 ` Eric W. Biederman 2013-05-14 21:02 ` Eric W. Biederman 2013-05-16 1:14 ` Serge E. Hallyn 2013-05-16 1:14 ` Serge E. Hallyn 2013-05-16 1:23 ` Serge E. Hallyn 2013-05-16 1:23 ` Serge E. Hallyn
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20121022161610.GD23199@sergelap \ --to=serge.hallyn@canonical.com \ --cc=akpm@linux-foundation.org \ --cc=aris@redhat.com \ --cc=cgroups@vger.kernel.org \ --cc=davej@redhat.com \ --cc=jmorris@namei.org \ --cc=jslaby@suse.cz \ --cc=linux-kernel@vger.kernel.org \ --cc=lizefan@huawei.com \ --cc=tj@kernel.org \ --cc=xemul@openvz.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.