summaryrefslogtreecommitdiff
path: root/security/security.c
diff options
context:
space:
mode:
authorXu Kuohai <xukuohai@huawei.com>2024-07-24 10:06:58 +0800
committerPaul Moore <paul@paul-moore.com>2024-07-31 14:46:51 -0400
commitbe72a57527fde6c80061c5f9d0e28762eb817b03 (patch)
treeabefde6ce06f167ce75f8f3802fc227934cdb9c8 /security/security.c
parent61a1dcdceb44d79e5ab511295791b88ea178c045 (diff)
lsm: Refactor return value of LSM hook vm_enough_memory
To be consistent with most LSM hooks, convert the return value of hook vm_enough_memory to 0 or a negative error code. Before: - Hook vm_enough_memory returns 1 if permission is granted, 0 if not. - LSM_RET_DEFAULT(vm_enough_memory_mm) is 1. After: - Hook vm_enough_memory reutrns 0 if permission is granted, negative error code if not. - LSM_RET_DEFAULT(vm_enough_memory_mm) is 0. Signed-off-by: Xu Kuohai <xukuohai@huawei.com> Reviewed-by: Casey Schaufler <casey@schaufler-ca.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'security/security.c')
-rw-r--r--security/security.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/security/security.c b/security/security.c
index 93ed7670fbc9..b2f0e9a57864 100644
--- a/security/security.c
+++ b/security/security.c
@@ -1129,15 +1129,14 @@ int security_vm_enough_memory_mm(struct mm_struct *mm, long pages)
int rc;
/*
- * The module will respond with a positive value if
- * it thinks the __vm_enough_memory() call should be
- * made with the cap_sys_admin set. If all of the modules
- * agree that it should be set it will. If any module
- * thinks it should not be set it won't.
+ * The module will respond with 0 if it thinks the __vm_enough_memory()
+ * call should be made with the cap_sys_admin set. If all of the modules
+ * agree that it should be set it will. If any module thinks it should
+ * not be set it won't.
*/
hlist_for_each_entry(hp, &security_hook_heads.vm_enough_memory, list) {
rc = hp->hook.vm_enough_memory(mm, pages);
- if (rc <= 0) {
+ if (rc < 0) {
cap_sys_admin = 0;
break;
}