Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 3 files as a function:
- include/linux/security.h, line 726 (as a function)
- security/security.c, line 735 (as a function)
- tools/testing/vma/include/stubs.h, line 238 (as a function)
Referenced in 6 files:
- mm/mmap.c, line 1758
- mm/mprotect.c, line 815
- mm/mremap.c, line 1002
- mm/shmem.c
- mm/swapfile.c, line 3118
- mm/vma.c
Smatch caller information:
mm/mmap.c dup_mmap() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->exe_file | 0,4096-ptr_max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->process_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->process_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->request_key_auth->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->request_key_auth->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->session_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->session_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->thread_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->thread_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_security | 0 |
| PARAM_VALUE | 0 | mm->exe_file->f_task_work.func | 5179756662909861888 |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | pages | 0-4503599627370495 |
| DATA_SOURCE | 0 | mm | $1 |
| DATA_SOURCE | 1 | pages | r vma_pages |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/swapfile.c __do_sys_swapoff() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 21 | |
| PREEMPT_ADD | <- disables preempt | ||
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | pages | unit_page |
| LOCK2 | global &swap_lock |
mm/swapfile.c __do_sys_swapoff() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPABLE | 0 | 21 | |
| PREEMPT_ADD | <- disables preempt | ||
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | pages | unit_page |
| LOCK2 | global &swap_lock |
mm/mprotect.c mprotect_fixup() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pages | 0-4503599627370495 |
| USER_DATA | 1 | pages | 2-4503599627370495[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | pages | unit_page |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock |
mm/shmem.c shmem_acct_blocks() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &session->mutex | ||
| HALF_LOCKED2 | &state.ctx->map_changing_lock | ||
| HALF_LOCKED2 | _T->lock |
mm/shmem.c shmem_acct_size() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | pages | (-2251799813685248)-2251799813685247 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | pages | (-2251799813685248)-2251799813685247[c] |
| UNITS | 0 | mm | unit_byte |
mm/shmem.c shmem_reacct_size() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | pages | (-4503599627370495)-4503599627370495 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | pages | (-4503599627370494)-2251799813685248 |
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | &dentry->d_lockref.lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock |
mm/mremap.c vrm_calc_charge() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | pages | 0-4503599627370495 |
| USER_DATA | 1 | pages | 1-4503599627370495[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | pages | unit_page |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/vma.c __mmap_setup() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pages | s64min-(-1),1-s64max |
| UNITS | 0 | mm | unit_byte |
mm/vma.c acct_stack_growth() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pages | 0-4503599627370495 |
| CAPPED_DATA | 1 | pages | 1 |
| DATA_SOURCE | 1 | pages | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | pages | 1-s32max[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | pages | unit_page |
| LOCK2 | &vma->anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct anon_vma)->rwsem |
mm/vma.c do_brk_flags() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->map_count | s32min-65530 |
| PARAM_VALUE | 1 | pages | 0-4503599627370495 |
| USER_DATA | 1 | pages | 1-4503599627370495[c] |
| UNITS | 0 | mm | unit_byte |
| UNITS | 1 | pages | unit_page |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/vma.c insert_vm_struct() -> security_vm_enough_memory_mm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.next | 2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | pages | 0-4503599627370495 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | pages | r vma_pages |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | pages | 1-4503599627370495[c] |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | 0 | &mm->mmap_lock | |
| TYPE_LOCK | (struct mm_struct)->mmap_lock |