From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mimi Zohar Subject: [RFC PATCH 4/4] evm: call evm_inode_init_security from security_inode_init_security Date: Fri, 17 Jun 2011 10:47:00 -0400 Message-ID: <1308322020-24824-5-git-send-email-zohar@linux.vnet.ibm.com> References: <1308322020-24824-1-git-send-email-zohar@linux.vnet.ibm.com> Cc: Mimi Zohar , linux-fsdevel@vger.kernel.org, Dave Chinner , Steven Whitehouse , Mimi Zohar To: linux-security-module@vger.kernel.org Return-path: Received: from e3.ny.us.ibm.com ([32.97.182.143]:38226 "EHLO e3.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932337Ab1FQOrg (ORCPT ); Fri, 17 Jun 2011 10:47:36 -0400 In-Reply-To: <1308322020-24824-1-git-send-email-zohar@linux.vnet.ibm.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Option 2: security_inode_init_security function callback parameter Changelog v7: - moved the EVM xattr initialization call to security_inode_init_security, renaming evm_inode_post_init_security to evm_inode_init_security - increase size of xattr array for EVM xattr Signed-off-by: Mimi Zohar --- security/security.c | 17 +++++++++++------ 1 files changed, 11 insertions(+), 6 deletions(-) diff --git a/security/security.c b/security/security.c index b4b997d..0480fb2 100644 --- a/security/security.c +++ b/security/security.c @@ -20,7 +20,7 @@ #include #include -#define MAX_LSM_XATTR 1 +#define MAX_LSM_EVM_XATTR 2 /* Boot-time LSM user choice */ static __initdata char chosen_lsm[SECURITY_NAME_MAX + 1] = @@ -350,8 +350,8 @@ int security_inode_init_security(struct inode *inode, struct inode *dir, void *fs_data ) { - struct xattr new_xattrs[MAX_LSM_XATTR + 1]; - struct xattr *lsm_xattr; + struct xattr new_xattrs[MAX_LSM_EVM_XATTR + 1]; + struct xattr *lsm_xattr, *evm_xattr, *xattr; int ret; if (unlikely(IS_PRIVATE(inode))) @@ -368,11 +368,16 @@ int security_inode_init_security(struct inode *inode, struct inode *dir, &lsm_xattr->value_len); if (ret) goto out; + evm_xattr = lsm_xattr + 1; + ret = evm_inode_init_security(inode, lsm_xattr, evm_xattr); + if (ret) + goto out; ret = initxattrs(inode, new_xattrs, 0, fs_data); out: - kfree(lsm_xattr->name); - kfree(lsm_xattr->value); - + for (xattr = new_xattrs; xattr->name != NULL; xattr++) { + kfree(xattr->name); + kfree(xattr->value); + } return (ret == -EOPNOTSUPP) ? 0 : ret; } EXPORT_SYMBOL(security_inode_init_security); -- 1.7.3.4