sysfs: disallow world-writable files.
authorRusty Russell <rusty@rustcorp.com.au>
Sat, 26 Jul 2014 21:56:01 +0000 (07:26 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Sun, 27 Jul 2014 11:22:45 +0000 (20:52 +0930)
This check was introduced in 2006 by Alexey Dobriyan (9774a1f54f173)
for module parameters; we removed it when we unified the check into
VERIFY_OCTAL_PERMISSIONS() as sysfs didn't have the same requirement.
Now all those users are fixed, reintroduce it.

Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Dave Jones <davej@redhat.com>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
include/linux/kernel.h

index 4c52907..43e1c6a 100644 (file)
@@ -849,5 +849,7 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
         /* User perms >= group perms >= other perms */                 \
         BUILD_BUG_ON_ZERO(((perms) >> 6) < (((perms) >> 3) & 7)) +     \
         BUILD_BUG_ON_ZERO((((perms) >> 3) & 7) < ((perms) & 7)) +      \
+        /* Other writable?  Generally considered a bad idea. */        \
+        BUILD_BUG_ON_ZERO((perms) & 2) +                               \
         (perms))
 #endif