Defined in 1 files as a macro:
Defined in 2 files as a function:
- arch/powerpc/include/asm/uaccess.h, line 530 (as a function)
- arch/x86/include/asm/uaccess_64.h, line 64 (as a function)
Referenced in 5 files:
- arch/powerpc/include/asm/uaccess.h, line 552
- arch/powerpc/lib/pmem.c, line 74
- arch/x86/include/asm/uaccess_64.h
- include/linux/uaccess.h
- lib/iov_iter.c, line 53
Smatch caller information:
lib/strncpy_from_user.c strncpy_from_user() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| STR_LEN | 0 | ptr | (-1),10 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | ptr | unit_byte |
| HALF_LOCKED2 | &av7110->osd_mutex | ||
| HALF_LOCKED2 | &vfpriv->context_lock | ||
| HALF_LOCKED2 | global &system_transition_mutex |
lib/iov_iter.c copy_from_user_inatomic_nontemporal() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 4096-ptr_max |
| DATA_SOURCE | 0 | ptr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | ptr | unit_byte |
lib/iov_iter.c copy_from_user_iter() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 4096-ptr_max |
| DATA_SOURCE | 0 | ptr | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | ptr | unit_byte |
drivers/gpu/drm/qxl/qxl_ioctl.c copy_from_user_inatomic_nontemporal() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
kernel/entry/common.c __rseq_grant_slice_extension() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/entry/common.c rseq_exit_user_update() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
kernel/entry/common.c rseq_set_ids_get_csaddr() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
kernel/entry/common.c rseq_update_user_cs() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 0-18446744073709551614 |
| DATA_SOURCE | 0 | ptr | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
kernel/futex/core.c futex_atomic_cmpxchg_inatomic() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &curr->futex.exit_mutex | ||
| TYPE_LOCK | (struct futex_sched_data)->exit_mutex |
kernel/futex/core.c get_futex_key() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/futex/core.c get_futex_key() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/rseq.c rseq_debug_update_user_cs() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 0-18446744073709551614 |
| DATA_SOURCE | 0 | ptr | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/rseq.c rseq_handle_cs() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/rseq.c rseq_register() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $0 |
kernel/rseq.c rseq_reset_ids() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|
kernel/rseq.c rseq_set_ids_get_csaddr() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/rseq.c rseq_update_user_cs() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 1-18446744073709551614 |
| DATA_SOURCE | 0 | ptr | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
lib/strnlen_user.c strnlen_user() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | ptr | (-1),512 |
| DATA_SOURCE | 0 | ptr | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | ptr | unit_byte |
net/core/scm.c put_cmsg() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | ptr | unit_byte |
| HALF_LOCKED2 | &call->user_mutex | ||
| HALF_LOCKED2 | &rx->sk | ||
| HALF_LOCKED2 | &u->iolock | ||
| HALF_LOCKED2 | sk |
fs/readdir.c compat_filldir() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &(sb->s_fs_info)->cat_tree->tree_lock | ||
| HALF_LOCKED2 | &f->sem | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ndir->mrec_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &root->kernfs_rwsem | ||
| HALF_LOCKED2 | &sbi->hpfs_mutex | ||
| HALF_LOCKED2 | &sbi->s_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &adfs_dir_rwsem |
fs/readdir.c compat_fillonedir() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &(sb->s_fs_info)->cat_tree->tree_lock | ||
| HALF_LOCKED2 | &f->sem | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ndir->mrec_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &root->kernfs_rwsem | ||
| HALF_LOCKED2 | &sbi->hpfs_mutex | ||
| HALF_LOCKED2 | &sbi->s_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &adfs_dir_rwsem |
fs/readdir.c filldir() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &(sb->s_fs_info)->cat_tree->tree_lock | ||
| HALF_LOCKED2 | &f->sem | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ndir->mrec_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &root->kernfs_rwsem | ||
| HALF_LOCKED2 | &sbi->hpfs_mutex | ||
| HALF_LOCKED2 | &sbi->s_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &adfs_dir_rwsem |
fs/readdir.c filldir64() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &(sb->s_fs_info)->cat_tree->tree_lock | ||
| HALF_LOCKED2 | &f->sem | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ndir->mrec_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &root->kernfs_rwsem | ||
| HALF_LOCKED2 | &sbi->hpfs_mutex | ||
| HALF_LOCKED2 | &sbi->s_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &adfs_dir_rwsem |
fs/readdir.c fillonedir() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &(sb->s_fs_info)->cat_tree->tree_lock | ||
| HALF_LOCKED2 | &f->sem | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ndir->mrec_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &root->kernfs_rwsem | ||
| HALF_LOCKED2 | &sbi->hpfs_mutex | ||
| HALF_LOCKED2 | &sbi->s_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &adfs_dir_rwsem |
kernel/futex/waitwake.c arch_futex_atomic_op_inuser() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $3 |
| RX_PATH |
kernel/futex/waitwake.c futex_get_value_locked() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &hb->lock | ||
| TYPE_LOCK | (struct futex_hash_bucket)->lock |
kernel/futex/waitwake.c futex_robust_unlock() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &curr->futex.exit_mutex |
fs/eventpoll.c epoll_put_uevent() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ep->mtx | ||
| TYPE_LOCK | (struct eventpoll)->mtx |
net/socket.c move_addr_to_user() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | ptr | (-1),4 |
| DATA_SOURCE | 0 | ptr | $3 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/futex/pi.c futex_atomic_cmpxchg_inatomic() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| HALF_LOCKED2 | &hb->lock | ||
| HALF_LOCKED2 | &pi_state->pi_mutex.wait_lock | ||
| HALF_LOCKED2 | irq |
kernel/futex/pi.c futex_get_value_locked() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| HALF_LOCKED2 | &hb->lock | ||
| HALF_LOCKED2 | &pi_state->pi_mutex.wait_lock | ||
| HALF_LOCKED2 | irq |
kernel/futex/requeue.c futex_get_value_locked() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| RX_PATH |
fs/select.c do_sys_poll() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $0 |
fs/select.c get_compat_sigset_argpack() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 1-u64max |
| DATA_SOURCE | 0 | ptr | $1 |
fs/select.c get_sigset_argpack() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 1-u64max |
| DATA_SOURCE | 0 | ptr | $1 |
arch/x86/lib/usercopy_64.c copy_user_flushcache() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | ptr | 4096-ptr_max |
| DATA_SOURCE | 0 | ptr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | ptr | unit_byte |
drivers/gpu/drm/i915/i915_gem.c copy_from_user_inatomic_nontemporal() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |
| PREEMPT_ADD |
lib/usercopy.c _inline_copy_from_user() -> mask_user_address()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | ptr | $1 |