Messages in this thread | | | Subject | Re: SELinux change in 3.13 causes sync hang | From | Eric Paris <> | Date | Tue, 10 Dec 2013 17:00:37 -0500 |
| |
On Tue, 2013-12-10 at 13:58 -0800, Anand Avati wrote: > 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.
I fix one bug and break another, huh? It probably won't be until tomorrow that I have a place I can test this fix...
-Eric
> > 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; > > > > >
| |