diff options
| author | Wolfram Sang <wsa@kernel.org> | 2020-07-31 15:54:27 +0200 |
|---|---|---|
| committer | Wolfram Sang <wsa@kernel.org> | 2020-07-31 15:54:27 +0200 |
| commit | 073d398dc4841f62488ac6060ffeb9dfce6e0a98 (patch) | |
| tree | 2ae9d508d0cd27f02584b9befb063dda5cb11a0b /security/security.c | |
| parent | afca861bc6a3141c858d08279eb9afca76584fa6 (diff) | |
| parent | 92ed301919932f777713b9172e525674157e983d (diff) | |
Merge tag 'v5.8-rc7' into i2c/for-5.9
Diffstat (limited to 'security/security.c')
| -rw-r--r-- | security/security.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/security/security.c b/security/security.c index 0ce3e73edd42..70a7ad357bc6 100644 --- a/security/security.c +++ b/security/security.c @@ -1414,7 +1414,22 @@ EXPORT_SYMBOL(security_inode_copy_up); int security_inode_copy_up_xattr(const char *name) { - return call_int_hook(inode_copy_up_xattr, -EOPNOTSUPP, name); + struct security_hook_list *hp; + int rc; + + /* + * The implementation can return 0 (accept the xattr), 1 (discard the + * xattr), -EOPNOTSUPP if it does not know anything about the xattr or + * any other error code incase of an error. + */ + hlist_for_each_entry(hp, + &security_hook_heads.inode_copy_up_xattr, list) { + rc = hp->hook.inode_copy_up_xattr(name); + if (rc != LSM_RET_DEFAULT(inode_copy_up_xattr)) + return rc; + } + + return LSM_RET_DEFAULT(inode_copy_up_xattr); } EXPORT_SYMBOL(security_inode_copy_up_xattr); |