evm: Align evm_inode_init_security() definition with LSM infrastructure
authorRoberto Sassu <roberto.sassu@huawei.com>
Sat, 10 Jun 2023 07:57:37 +0000 (09:57 +0200)
committerPaul Moore <paul@paul-moore.com>
Mon, 10 Jul 2023 17:59:38 +0000 (13:59 -0400)
commit6db7d1dee8003921b353d7e613471fe8995f46b5
treecd4c88e6eb047849624f2d3bc7839bd551f6e687
parentbaed456a6a2f6b8bec2913a6c6a72cc811252c6e
evm: Align evm_inode_init_security() definition with LSM infrastructure

Change the evm_inode_init_security() definition to align with the LSM
infrastructure. Keep the existing behavior of including in the HMAC
calculation only the first xattr provided by LSMs.

Changing the evm_inode_init_security() definition requires passing the
xattr array allocated by security_inode_init_security(), and the number of
xattrs filled by previously invoked LSMs.

Use the newly introduced lsm_get_xattr_slot() to position EVM correctly in
the xattrs array, like a regular LSM, and to increment the number of filled
slots. For now, the LSM infrastructure allocates enough xattrs slots to
store the EVM xattr, without using the reservation mechanism.

Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Reviewed-by: Mimi Zohar <zohar@linux.ibm.com>
Acked-by: Mimi Zohar <zohar@linux.ibm.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
include/linux/evm.h
security/integrity/evm/evm_main.c
security/security.c