lkml.org 
[lkml]   [2011]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 08/21] evm: imbed evm_inode_post_setattr
    Date
    Changing the inode's metadata may require the 'security.evm' extended
    attribute to be re-calculated and updated.

    Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
    Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
    ---
    fs/attr.c | 5 ++++-
    include/linux/evm.h | 6 ++++++
    2 files changed, 10 insertions(+), 1 deletions(-)

    diff --git a/fs/attr.c b/fs/attr.c
    index 91dbe2a..b717f86 100644
    --- a/fs/attr.c
    +++ b/fs/attr.c
    @@ -13,6 +13,7 @@
    #include <linux/fsnotify.h>
    #include <linux/fcntl.h>
    #include <linux/security.h>
    +#include <linux/evm.h>

    /**
    * inode_change_ok - check if attribute changes to an inode are allowed
    @@ -236,8 +237,10 @@ int notify_change(struct dentry * dentry, struct iattr * attr)
    if (ia_valid & ATTR_SIZE)
    up_write(&dentry->d_inode->i_alloc_sem);

    - if (!error)
    + if (!error) {
    fsnotify_change(dentry, ia_valid);
    + evm_inode_post_setattr(dentry, ia_valid);
    + }

    return error;
    }
    diff --git a/include/linux/evm.h b/include/linux/evm.h
    index a730782..33a9247 100644
    --- a/include/linux/evm.h
    +++ b/include/linux/evm.h
    @@ -15,6 +15,7 @@ extern enum integrity_status evm_verifyxattr(struct dentry *dentry,
    const char *xattr_name,
    void *xattr_value,
    size_t xattr_value_len);
    +extern void evm_inode_post_setattr(struct dentry *dentry, int ia_valid);
    extern int evm_inode_setxattr(struct dentry *dentry, const char *name,
    const void *value, size_t size);
    extern void evm_inode_post_setxattr(struct dentry *dentry,
    @@ -35,6 +36,11 @@ static inline enum integrity_status evm_verifyxattr(struct dentry *dentry,
    }
    #endif

    +static inline void evm_inode_post_setattr(struct dentry *dentry, int ia_valid)
    +{
    + return;
    +}
    +
    static inline int evm_inode_setxattr(struct dentry *dentry, const char *name,
    const void *value, size_t size)
    {
    --
    1.7.3.4


    \
     
     \ /
      Last update: 2011-05-16 16:49    [W:0.028 / U:150.756 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site