Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 2 files:
Smatch caller information:
arch/x86/kernel/uprobes.c copy_from_vaddr() -> uprobe_copy_from_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 0-ptr_max |
| PARAM_VALUE | 1 | vaddr | 0 |
| PARAM_VALUE | 2 | dst | 2856880939883790336,4687684175761580032 |
| PARAM_VALUE | 3 | len | 10 |
| BUF_SIZE | 2 | dst | 10 |
| BUF_SIZE | 2 | dst | 10 |
| DATA_SOURCE | 0 | page | r get_user_page_vma_remote |
| DATA_SOURCE | 1 | vaddr | $1 |
| DATA_SOURCE | 2 | dst | $2 |
| DATA_SOURCE | 3 | len | $3 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 1 | vaddr | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
arch/x86/kernel/uprobes.c verify_insn() -> uprobe_copy_from_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 2 | dst | 75506888026939392 |
| PARAM_VALUE | 3 | len | 10 |
| BUF_SIZE | 2 | dst | 10 |
| DATA_SOURCE | 0 | page | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | page | unit_page |
| UNITS | 1 | vaddr | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem |
kernel/events/uprobes.c __copy_insn() -> uprobe_copy_from_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 0-ptr_max |
| PARAM_VALUE | 1 | vaddr | 0-9223372036854775806,9223372036854775808-u64max |
| PARAM_VALUE | 3 | len | 1-16 |
| BUF_SIZE | 0 | page | (-1),64 |
| BUF_SIZE | 0 | page | (-1),64 |
| BUF_SIZE | 2 | dst | (-1),16 |
| BUF_SIZE | 2 | dst | (-1),16 |
| CAPPED_DATA | 1 | vaddr | 1 |
| CAPPED_DATA | 3 | len | 1 |
| DATA_SOURCE | 1 | vaddr | $4 |
| DATA_SOURCE | 2 | dst | $2 |
| DATA_SOURCE | 3 | len | $3 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 1 | vaddr | unit_byte |
| UNITS | 3 | len | unit_byte |
| LOCK2 | &uprobe->consumer_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem | ||
| TYPE_LOCK | (struct uprobe)->consumer_rwsem |
kernel/events/uprobes.c is_trap_at_addr() -> uprobe_copy_from_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | vaddr | 0 |
| PARAM_VALUE | 2 | dst | 470518883760795648 |
| PARAM_VALUE | 2 | *dst | 0-255 |
| PARAM_VALUE | 3 | len | 1 |
| DATA_SOURCE | 1 | vaddr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 1 | vaddr | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
kernel/events/uprobes.c verify_opcode() -> uprobe_copy_from_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 2 | dst | 2366773369227046912 |
| PARAM_VALUE | 3 | len | 1 |
| DATA_SOURCE | 0 | page | $0 |
| DATA_SOURCE | 1 | vaddr | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | page | unit_page |
| UNITS | 1 | vaddr | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem |