Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.24 /security/dummy.c

Filename:/security/dummy.c
Lines Added:26
Lines Deleted:23
Also changed in: (Previous) 2.6.24-rc8  2.6.24-rc7  2.6.24-rc6  2.6.24-rc5  2.6.24-rc4-git7  2.6.24-rc4-git6 
(Following) 2.6.24-git1  2.6.24-git2  2.6.24-git3  2.6.24-git4  2.6.24-git5  2.6.24-git6 

Location
[  2.6.24
  [  security
     o  dummy.c

Patch

diff --git a/security/dummy.c b/security/dummy.c
index 853ec22..3ccfbbe 100644
--- a/security/dummy.c
+++ b/security/dummy.c
@@ -15,7 +15,6 @@
 #undef DEBUG
 
 #include <linux/capability.h>
-#include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/mman.h>
 #include <linux/pagemap.h>
@@ -38,15 +37,13 @@ static int dummy_capget (struct task_struct *target, kernel_cap_t * effective,
           kernel_cap_t * inheritable, kernel_cap_t * permitted)
 {
    *effective = *inheritable = *permitted = 0;
-   if (!issecure(SECURE_NOROOT)) {
-      if (target->euid == 0) {
-         *permitted |= (~0 & ~CAP_FS_MASK);
-         *effective |= (~0 & ~CAP_TO_MASK(CAP_SETPCAP) & ~CAP_FS_MASK);
-      }
-      if (target->fsuid == 0) {
-         *permitted |= CAP_FS_MASK;
-         *effective |= CAP_FS_MASK;
-      }
+   if (target->euid == 0) {
+      *permitted |= (~0 & ~CAP_FS_MASK);
+      *effective |= (~0 & ~CAP_TO_MASK(CAP_SETPCAP) & ~CAP_FS_MASK);
+   }
+   if (target->fsuid == 0) {
+      *permitted |= CAP_FS_MASK;
+      *effective |= CAP_FS_MASK;
    }
    return 0;
 }
@@ -377,6 +374,16 @@ static int dummy_inode_removexattr (struct dentry *dentry, char *name)
    return 0;
 }
 
+static int dummy_inode_need_killpriv(struct dentry *dentry)
+{
+   return 0;
+}
+
+static int dummy_inode_killpriv(struct dentry *dentry)
+{
+   return 0;
+}
+
 static int dummy_inode_getsecurity(const struct inode *inode, const char *name, void *buffer, size_t size, int err)
 {
    return -EOPNOTSUPP;
@@ -392,11 +399,6 @@ static int dummy_inode_listsecurity(struct inode *inode, char *buffer, size_t bu
    return 0;
 }
 
-static const char *dummy_inode_xattr_getsuffix(void)
-{
-   return NULL;
-}
-
 static int dummy_file_permission (struct file *file, int mask)
 {
    return 0;
@@ -424,7 +426,7 @@ static int dummy_file_mmap (struct file *file, unsigned long reqprot,
              unsigned long addr,
              unsigned long addr_only)
 {
-   if (addr < mmap_min_addr)
+   if ((addr < mmap_min_addr) && !capable(CAP_SYS_RAWIO))
       return -EACCES;
    return 0;
 }
@@ -463,6 +465,11 @@ static int dummy_file_receive (struct file *file)
    return 0;
 }
 
+static int dummy_dentry_open (struct file *file)
+{
+   return 0;
+}
+
 static int dummy_task_create (unsigned long clone_flags)
 {
    return 0;
@@ -901,11 +908,6 @@ static int dummy_register_security (const char *name, struct security_operations
    return -EINVAL;
 }
 
-static int dummy_unregister_security (const char *name, struct security_operations *ops)
-{
-   return -EINVAL;
-}
-
 static void dummy_d_instantiate (struct dentry *dentry, struct inode *inode)
 {
    return;
@@ -1018,7 +1020,8 @@ void security_fixup_ops (struct security_operations *ops)
    set_to_dummy_if_null(ops, inode_getxattr);
    set_to_dummy_if_null(ops, inode_listxattr);
    set_to_dummy_if_null(ops, inode_removexattr);
-   set_to_dummy_if_null(ops, inode_xattr_getsuffix);
+   set_to_dummy_if_null(ops, inode_need_killpriv);
+   set_to_dummy_if_null(ops, inode_killpriv);
    set_to_dummy_if_null(ops, inode_getsecurity);
    set_to_dummy_if_null(ops, inode_setsecurity);
    set_to_dummy_if_null(ops, inode_listsecurity);
@@ -1033,6 +1036,7 @@ void security_fixup_ops (struct security_operations *ops)
    set_to_dummy_if_null(ops, file_set_fowner);
    set_to_dummy_if_null(ops, file_send_sigiotask);
    set_to_dummy_if_null(ops, file_receive);
+   set_to_dummy_if_null(ops, dentry_open);
    set_to_dummy_if_null(ops, task_create);
    set_to_dummy_if_null(ops, task_alloc_security);
    set_to_dummy_if_null(ops, task_free_security);
@@ -1078,7 +1082,6 @@ void security_fixup_ops (struct security_operations *ops)
    set_to_dummy_if_null(ops, netlink_send);
    set_to_dummy_if_null(ops, netlink_recv);
    set_to_dummy_if_null(ops, register_security);
-   set_to_dummy_if_null(ops, unregister_security);
    set_to_dummy_if_null(ops, d_instantiate);
     set_to_dummy_if_null(ops, getprocattr);
     set_to_dummy_if_null(ops, setprocattr);


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.