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 <[email protected]>

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;



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to