Messages in this thread | | | Date | Tue, 10 Dec 2013 13:58:54 -0800 | From | Anand Avati <> | Subject | Re: SELinux change in 3.13 causes sync hang |
| |
On 12/10/13, 12:35 PM, Eric Paris wrote: > On Tue, 2013-12-10 at 15:25 -0500, Eric Paris wrote: > >> I'll try to write a patch to fix that logic... > > Anand, > > How about something like (untested but it compiles):
Sorry, it took me a while to compare the committed patch and my original submission. The original patch did not have the subtype matching issue (but had a different issue) and it looks like this bug has come in the reworked/committed patch. I think the fix you have pasted below works.
Reviewed-by: Anand Avati <avati@redhat.com>
Thanks, Avati
> > diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c > index ee470a0..2b437fc8 100644 > --- a/security/selinux/ss/services.c > +++ b/security/selinux/ss/services.c > @@ -2349,9 +2359,17 @@ int security_fs_use(struct super_block *sb) > if (strncmp(fstype, c->u.name, baselen)) > continue; > > - /* if there is no subtype, this is the one! */ > - if (!subtype) > - break; > + /* current mount has no subtype */ > + if (!subtype) { > + /* > + * if there is no subtype in policy this is our match > + * if there is a subtype in policy keep looking, > + */ > + if (baselen == strlen(c->u.name)) > + break; > + else > + continue; > + } > > /* skip past the base in this entry */ > sub = c->u.name + baselen; > >
| |