Defined in 6 files as a prototype:
- arch/csky/include/asm/uaccess.h, line 195 (as a prototype)
- arch/hexagon/include/asm/uaccess.h, line 25 (as a prototype)
- arch/nios2/include/asm/uaccess.h, line 57 (as a prototype)
- arch/parisc/include/asm/uaccess.h, line 198 (as a prototype)
- arch/sparc/include/asm/uaccess_64.h, line 227 (as a prototype)
- arch/um/include/asm/uaccess.h, line 21 (as a prototype)
Defined in 1 files as a macro:
Defined in 21 files as a function:
- arch/alpha/include/asm/uaccess.h, line 186 (as a function)
- arch/arc/include/asm/uaccess.h, line 139 (as a function)
- arch/arm/include/asm/uaccess.h, line 561 (as a function)
- arch/arm/include/asm/uaccess.h, line 606 (as a function)
- arch/csky/lib/usercopy.c, line 7 (as a function)
- arch/loongarch/include/asm/uaccess.h, line 284 (as a function)
- arch/m68k/include/asm/uaccess.h, line 366 (as a function)
- arch/microblaze/include/asm/uaccess.h, line 243 (as a function)
- arch/mips/include/asm/uaccess.h, line 390 (as a function)
- arch/openrisc/include/asm/uaccess.h, line 212 (as a function)
- arch/parisc/lib/memcpy.c, line 33 (as a function)
- arch/powerpc/include/asm/uaccess.h, line 405 (as a function)
- arch/riscv/include/asm/uaccess.h, line 424 (as a function)
- arch/s390/include/asm/uaccess.h, line 36 (as a function)
- arch/sh/include/asm/uaccess.h, line 88 (as a function)
- arch/sparc/include/asm/uaccess_32.h, line 188 (as a function)
- arch/um/kernel/skas/uaccess.c, line 147 (as a function)
- arch/x86/include/asm/uaccess_32.h, line 24 (as a function)
- arch/x86/include/asm/uaccess_64.h, line 139 (as a function)
- arch/xtensa/include/asm/uaccess.h, line 229 (as a function)
- include/asm-generic/uaccess.h, line 82 (as a function)
Referenced in 20 files:
- arch/arm64/lib/uaccess_flushcache.c, line 27
- arch/csky/lib/usercopy.c, line 76
- arch/hexagon/kernel/hexagon_ksyms.c, line 15
- arch/hexagon/mm/copy_from_user.S, line 34
- arch/microblaze/include/asm/uaccess.h, line 116
- arch/nios2/include/asm/uaccess.h, line 88
- arch/nios2/mm/uaccess.c, line 68
- arch/parisc/lib/memcpy.c, line 55
- arch/sparc/lib/GENpatch.S, line 30
- arch/sparc/lib/M7patch.S, line 30
- arch/sparc/lib/NG2patch.S, line 30
- arch/sparc/lib/NG4patch.S, line 32
- arch/sparc/lib/NGpatch.S, line 30
- arch/sparc/lib/U1copy_from_user.S, line 23
- arch/sparc/lib/U3patch.S, line 30
- arch/um/kernel/skas/uaccess.c, line 151
- arch/x86/lib/usercopy.c, line 49
- include/asm-generic/uaccess.h, line 197
- include/linux/uaccess.h
- lib/iov_iter.c, line 67
Smatch caller information:
lib/iov_iter.c copy_from_user_iter() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 2 | size | 1-u64max |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $3 |
| DATA_SOURCE | 1 | src | r mask_user_address |
| DATA_SOURCE | 2 | size | $2 |
| NOSPEC | 2 | size | |
| NOSPEC | 2 | size | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HOST_DATA | 0 | dst | 4096-ptr_max[c] |
| HOST_DATA | 2 | size | 1-s32max[c] |
| USER_DATA | 0 | dst | 4096-ptr_max[c][u] |
| USER_DATA | 2 | size | 1-u64max[c] |
| UNITS | 0 | dst | unit_byte |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | size | unit_byte |
| BYTE_COUNT | 0 | ==dst2 | 8050 |
drivers/vhost/vhost.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 5686255541217935360 |
| PARAM_VALUE | 1 | src | 1-u64max |
| PARAM_VALUE | 2 | size | 16 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 2 | size | unit_byte |
| HALF_LOCKED2 | &vq->mutex | ||
| TYPE_LOCK | (struct vhost_virtqueue)->mutex |
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 16,4096-ptr_max |
| PARAM_VALUE | 2 | size | 1-2147483648 |
| BUF_SIZE | 0 | dst | (-1),8 |
| BUF_SIZE | 0 | dst | (-1),8 |
| CAPPED_DATA | 0 | dst | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| UNITS | 2 | size | unit_byte |
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c __copy_from_user_inatomic() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 897870973347024896 |
| PARAM_VALUE | 2 | size | 0-512 |
| BUF_SIZE | 0 | dst | 512 |
| BUF_SIZE | 0 | dst | 512 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| HALF_LOCKED2 | pool->obj->base.resv |
arch/x86/lib/usercopy.c copy_from_user_nmi() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | dst | (-1),15,64 |
| BUF_SIZE | 0 | dst | (-1),15,64 |
| CAPPED_DATA | 1 | src | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | dst | 4096-ptr_max[u] |
| USER_DATA | 1 | src | 4096-ptr_max[c] |
| USER_DATA | 2 | size | 0-327675[c] |
| NO_OVERFLOW_SIMPLE | 2 | size | |
| UNITS | 2 | size | unit_byte |
| HALF_LOCKED2 | rcu_read |
kernel/trace/trace_syscalls.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | size | 0-169 |
| BUF_SIZE | 0 | dst | (-1),510,4096 |
| BUF_SIZE | 0 | dst | (-1),510,4096 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| FUZZY_MAX | 2 | size | 169 |
| USER_DATA | 2 | size | 0-169[c] |
| NO_OVERFLOW_SIMPLE | 0 | dst |
mm/maccess.c __copy_from_user_inatomic() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | dst | (-1),8,256 |
| BUF_SIZE | 0 | dst | (-1),8,256 |
| CAPPED_DATA | 1 | src | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dst | |
| UNITS | 0 | dst | unit_byte |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | size | unit_byte |
| USER_PTR | 0 | dst |
arch/x86/lib/insn-eval.c __copy_from_user_inatomic() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | size | 15 |
| BUF_SIZE | 0 | dst | 15 |
| BUF_SIZE | 0 | dst | 15 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| PREEMPT_ADD | |||
| NO_OVERFLOW_SIMPLE | 0 | dst |
arch/x86/kvm/vmx/sgx.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | size | 4096 |
| CAPPED_DATA | 0 | dst | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| UNITS | 2 | size | unit_byte |
mm/kasan/kasan_test_c.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 16,4096-ptr_max |
| PARAM_VALUE | 1 | src | 1-18446744073709551614 |
| PARAM_VALUE | 2 | size | 1-s32max |
| BUF_SIZE | 0 | dst | 120 |
| BUF_SIZE | 0 | dst | 120 |
| CAPPED_DATA | 0 | dst | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| USER_PTR | 0 | dst |
mm/kasan/kasan_test_c.c __copy_from_user_inatomic() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 16,4096-ptr_max |
| PARAM_VALUE | 1 | src | 1-18446744073709551614 |
| PARAM_VALUE | 2 | size | 1-s32max |
| BUF_SIZE | 0 | dst | 120 |
| BUF_SIZE | 0 | dst | 120 |
| CAPPED_DATA | 0 | dst | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| USER_PTR | 0 | dst |
mm/memory.c __copy_from_user_inatomic() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 0,4096-u64max |
| PARAM_VALUE | 2 | size | 4096 |
| CAPPED_DATA | 0 | dst | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 2 | size | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | vmf->ptl |
kernel/trace/trace.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | size | 0-4096 |
| BUF_SIZE | 0 | dst | 510,4096 |
| BUF_SIZE | 0 | dst | 510,4096 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| FUZZY_MAX | 2 | size | 4096 |
| USER_DATA | 2 | size | 0-4096[c] |
| NO_OVERFLOW_SIMPLE | 0 | dst | |
| UNITS | 2 | size | unit_byte |
arch/x86/kernel/fpu/regset.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 1865865750782967808,2996045642319462400,4812849990974570496 |
| PARAM_VALUE | 2 | size | 8,108,512 |
| CAPPED_DATA | 0 | dst | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
drivers/gpu/drm/i915/i915_gem.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 2 | size | 1-4096 |
| CAPPED_DATA | 0 | dst | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| USER_DATA | 2 | size | 2-4096[c] |
| NO_OVERFLOW_SIMPLE | 2 | size |
lib/usercopy.c _inline_copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | r mask_user_address |
| DATA_SOURCE | 2 | size | $2 |
arch/x86/kvm/../../../virt/kvm/kvm_main.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 0-ptr_max |
| PARAM_VALUE | 2 | size | 1-4096 |
| BUF_SIZE | 0 | dst | (-1),1-65536 |
| BUF_SIZE | 0 | dst | (-1),1-65536 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| USER_DATA | 0 | dst | 4096-ptr_max[c][u] |
| USER_DATA | 0 | *dst | s64min-s64max |
| USER_DATA | 2 | size | 1-4096[c] |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | size | unit_byte |
| USER_PTR | 0 | dst |
arch/x86/kvm/../../../virt/kvm/kvm_main.c __copy_from_user_inatomic() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | size | 4,8,32,64 |
| BUF_SIZE | 0 | dst | 4,8,32,64 |
| BUF_SIZE | 0 | dst | 4,8,32,64 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | dst | |
| NO_OVERFLOW_SIMPLE | 2 | size | |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | size | unit_byte |
| HALF_LOCKED2 | &vcpu->kvm->mmu_lock |
arch/x86/kernel/fpu/signal.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1-u64max |
| PARAM_VALUE | 2 | size | 48,108,512 |
| BUF_SIZE | 0 | dst | (-1),108,512 |
| BUF_SIZE | 0 | dst | (-1),108,512 |
| BUF_SIZE | 1 | src | (-1),48 |
| BUF_SIZE | 1 | src | (-1),48 |
| CAPPED_DATA | 1 | src | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |
| HARD_MAX | 2 | size | 512 |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | size | unit_byte |
arch/x86/kernel/tls.c __copy_from_user() -> raw_copy_from_user()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 2787234788068900864 |
| BUF_SIZE | 0 | dst | 48 |
| BUF_SIZE | 0 | dst | 48 |
| CAPPED_DATA | 1 | src | 1 |
| CAPPED_DATA | 2 | size | 1 |
| CAPPED_DATA | 2 | size | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | size | $2 |