History

Merge tag 'fixes-v5.8-rc3-a' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security

Pull security subsystem fixes from James Morris: "Two simple fixes for v5.8: - Fix hook iteration and default value for inode_copy_up_xattr (KP Singh) - Fix the key_permission LSM hook function type (Sami Tolvanen)" * tag 'fixes-v5.8-rc3-a' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: security: Fix hook iteration and default value for inode_copy_up_xattr security: fix the key_permission LSM hook function type

Linus Torvalds committed 6 years ago

Commit 615bc212 parents b13f40b 23e390c2 files · +18 −3Browse files

Unified · Split

2 files
  1. include/linux/lsm_hook_defs.h +2 −2
  2. security/security.c +16 −1
include/linux/lsm_hook_defs.h+2−2
@@ -150,7 +150,7 @@ LSM_HOOK(int, 0, inode_listsecurity, struct inode *inode, char *buffer, · 149 unmodified lines
150 size_t buffer_size)150 size_t buffer_size)
151LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid)151LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid)
152LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)152LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)
153LSM_HOOK(int, 0, inode_copy_up_xattr, const char *name)153LSM_HOOK(int, -EOPNOTSUPP, inode_copy_up_xattr, const char *name)
154LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,154LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,
155 struct kernfs_node *kn)155 struct kernfs_node *kn)
156LSM_HOOK(int, 0, file_permission, struct file *file, int mask)156LSM_HOOK(int, 0, file_permission, struct file *file, int mask)
@@ -360,7 +360,7 @@ LSM_HOOK(int, 0, key_alloc, struct key *key, const struct cred *cred, · 203 unmodified lines
360 unsigned long flags)360 unsigned long flags)
361LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key)361LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key)
362LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred,362LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred,
363 unsigned perm)363 enum key_need_perm need_perm)
364LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer)364LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer)
365#endif /* CONFIG_KEYS */365#endif /* CONFIG_KEYS */
366 366
security/security.c+16−1
@@ -1414,7 +1414,22 @@ EXPORT_SYMBOL(security_inode_copy_up); · 1413 unmodified lines
1414 1414
1415int security_inode_copy_up_xattr(const char *name)1415int security_inode_copy_up_xattr(const char *name)
1416{1416{
1417 return call_int_hook(inode_copy_up_xattr, -EOPNOTSUPP, name);1417 struct security_hook_list *hp;
1418 int rc;
1419
1420 /*
1421 * The implementation can return 0 (accept the xattr), 1 (discard the
1422 * xattr), -EOPNOTSUPP if it does not know anything about the xattr or
1423 * any other error code incase of an error.
1424 */
1425 hlist_for_each_entry(hp,
1426 &security_hook_heads.inode_copy_up_xattr, list) {
1427 rc = hp->hook.inode_copy_up_xattr(name);
1428 if (rc != LSM_RET_DEFAULT(inode_copy_up_xattr))
1429 return rc;
1430 }
1431
1432 return LSM_RET_DEFAULT(inode_copy_up_xattr);
1418}1433}
1419EXPORT_SYMBOL(security_inode_copy_up_xattr);1434EXPORT_SYMBOL(security_inode_copy_up_xattr);
1420 1435