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 13/21] evm: add evm_inode_post_init call in gfs2
    Date
    After creating the initial LSM security extended attribute, call
    evm_inode_post_init_security() to create the 'security.evm'
    extended attribute.

    Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
    ---
    fs/gfs2/inode.c | 28 +++++++++++++++++++---------
    1 files changed, 19 insertions(+), 9 deletions(-)

    diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
    index 97d54a2..5ce875b 100644
    --- a/fs/gfs2/inode.c
    +++ b/fs/gfs2/inode.c
    @@ -17,6 +17,7 @@
    #include <linux/gfs2_ondisk.h>
    #include <linux/crc32.h>
    #include <linux/security.h>
    +#include <linux/evm.h>
    #include <linux/time.h>

    #include "gfs2.h"
    @@ -767,12 +768,12 @@ static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip,
    const struct qstr *qstr)
    {
    int err;
    - size_t len;
    - void *value;
    - char *name;
    + struct xattr lsm_xattr;
    + struct xattr evm_xattr;

    err = security_inode_init_security(&ip->i_inode, &dip->i_inode, qstr,
    - &name, &value, &len);
    + &lsm_xattr.name, &lsm_xattr.value,
    + &lsm_xattr.value_len);

    if (err) {
    if (err == -EOPNOTSUPP)
    @@ -780,11 +781,20 @@ static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip,
    return err;
    }

    - err = __gfs2_xattr_set(&ip->i_inode, name, value, len, 0,
    - GFS2_EATYPE_SECURITY);
    - kfree(value);
    - kfree(name);
    -
    + err = __gfs2_xattr_set(&ip->i_inode, lsm_xattr.name, lsm_xattr.value,
    + lsm_xattr.value_len, 0, GFS2_EATYPE_SECURITY);
    + if (err < 0)
    + goto out;
    + err = evm_inode_post_init_security(&ip->i_inode, &lsm_xattr,
    + &evm_xattr);
    + if (err)
    + goto out;
    + err = __gfs2_xattr_set(&ip->i_inode, evm_xattr.name, evm_xattr.value,
    + evm_xattr.value_len, 0, GFS2_EATYPE_SECURITY);
    + kfree(evm_xattr.value);
    +out:
    + kfree(lsm_xattr.name);
    + kfree(lsm_xattr.value);
    return err;
    }

    --
    1.7.3.4


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