Defined in 1 files as a function:

Referenced in 18 files:

Smatch caller information:

kernel/exit.c forget_original_parent() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 1 p2 4096-ptr_max
PARAM_VALUE 1 p2->signal 4096-ptr_max
CAPPED_DATA 1 p2 1
CAPPED_DATA 1 p2->cgroups 1
CAPPED_DATA 1 p2->sched_class 1
CAPPED_DATA 1 p2->signal 1
CAPPED_DATA 1 &p2->children 1
CAPPED_DATA 1 &p2->ptraced 1
DATA_SOURCE 1 p2 $0
PARAM_COMPARE 1 &p2->children != $1->children.next
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 p1->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 0 p1->exit_code 0,256-65280[c]
USER_DATA 0 p1->signal->group_exit_code 0,256-65280[c]
USER_DATA 1 p2->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 1 p2->exit_code 0,256-65280[c]
USER_DATA 1 p2->signal->group_exit_code 0,256-65280[c]
NO_OVERFLOW_SIMPLE 1 p2->delays->blkio_delay
NO_OVERFLOW_SIMPLE 1 p2->delays->compact_delay
NO_OVERFLOW_SIMPLE 1 p2->delays->freepages_delay
NO_OVERFLOW_SIMPLE 1 p2->delays->irq_delay
NO_OVERFLOW_SIMPLE 1 p2->delays->swapin_delay
NO_OVERFLOW_SIMPLE 1 p2->delays->thrashing_delay
NO_OVERFLOW_SIMPLE 1 p2->delays->wpcopy_delay
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->blkio_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->compact_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->cpu_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->cpu_run_virtual_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->freepages_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->irq_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->swapin_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->thrashing_delay_total
NO_OVERFLOW_SIMPLE 1 p2->signal->stats->wpcopy_delay_total
LOCK2 global &tasklist_lock
LOCK2 irq
HALF_LOCKED2 global &system_transition_mutex

kernel/exit.c is_effectively_child() -> same_thread_group()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 1 p2 unit_byte
HALF_LOCKED2 global &tasklist_lock

kernel/exit.c ptrace_reparented() -> same_thread_group()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 1 p2 unit_byte
HALF_LOCKED2 global &tasklist_lock
HALF_LOCKED2 irq

mm/oom_kill.c __oom_kill_process() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-4931338248183341055,4931338248183341057-ptr_max
PARAM_VALUE 0 p1->signal 4096-ptr_max
PARAM_VALUE 1 p2 4096-ptr_max
PARAM_VALUE 1 p2->signal 4096-ptr_max
CAPPED_DATA 1 p2 1
CAPPED_DATA 1 p2->signal 1
DATA_SOURCE 1 p2 $0 [m]
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &oom_lock
LOCK2 rcu_read

mm/oom_kill.c task_will_free_mem() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
PARAM_VALUE 0 p1->signal 4096-ptr_max
PARAM_VALUE 1 p2 4096-4931338248183341055,4931338248183341057-ptr_max
PARAM_VALUE 1 p2->signal 4096-ptr_max
CAPPED_DATA 0 p1->signal 1
DATA_SOURCE 0 p1 $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &oom_lock
HALF_LOCKED2 0 &p1->alloc_lock

security/landlock/fs.c control_current_fowner() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
DATA_SOURCE 0 p1 r pid_task
LOCK2 rcu_read

kernel/time/posix-cpu-timers.c pid_for_clock() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
DATA_SOURCE 0 p1 r pid_task
LOCK2 rcu_read

fs/proc/base.c __set_oom_adj() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
PARAM_VALUE 0 p1->signal 4096-ptr_max
PARAM_VALUE 1 p2 4096-4931338248183341055,4931338248183341057-ptr_max
CAPPED_DATA 0 p1->signal 1
CAPPED_DATA 0 p1->signal->oom_score_adj 1
DATA_SOURCE 0 p1 r get_proc_task
NOSPEC 0 p1->signal->oom_score_adj
NOSPEC 0 p1->signal->oom_score_adj_min
NOSPEC 1 p2->signal->oom_score_adj
NOSPEC 1 p2->signal->oom_score_adj_min
USER_DATA 0 p1->signal->oom_score_adj (-1000)-1000[c]
USER_DATA 0 p1->signal->oom_score_adj_min (-1000)-1000[c]
USER_DATA 1 p2->signal->oom_score_adj (-1000)-1000[c]
USER_DATA 1 p2->signal->oom_score_adj_min (-1000)-1000[c]
LOCK2 global &oom_adj_mutex
LOCK2 rcu_read

fs/proc/base.c comm_write() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 1 p2 4096-ptr_max
DATA_SOURCE 1 p2 r get_proc_task

fs/proc/base.c first_tid() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
PARAM_VALUE 1 p2 1-u64max
DATA_SOURCE 0 p1 r find_task_by_pid_ns
DATA_SOURCE 1 p2 r pid_task
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/proc/base.c proc_task_lookup() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
PARAM_VALUE 1 p2 4096-ptr_max
DATA_SOURCE 0 p1 r get_proc_task
DATA_SOURCE 1 p2 r find_task_by_pid_ns
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dir->i_rwsem

fs/proc/base.c proc_tid_comm_permission() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 1 p2 4096-ptr_max
DATA_SOURCE 1 p2 r get_proc_task
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgroup_mutex

security/yama/yama_lsm.c ptracer_exception_found() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
DATA_SOURCE 1 p2 $0
UNITS 0 p1 unit_byte
LOCK2 rcu_read

kernel/ptrace.c __ptrace_detach() -> same_thread_group()

Type Parameter Key Value
DATA_SOURCE 1 p2 $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p2->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 1 p2->exit_code 0,256-65280[c]
USER_DATA 1 p2->signal->group_exit_code 0,256-65280[c]
LOCK2 global &tasklist_lock
LOCK2 irq

kernel/ptrace.c __ptrace_may_access() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
DATA_SOURCE 0 p1 $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &_T->lock->alloc_lock
HALF_LOCKED2 0 &p1->alloc_lock
HALF_LOCKED2 0 &p1->signal->exec_update_lock

kernel/ptrace.c ptrace_attach() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
DATA_SOURCE 0 p1 $0
BIT_INFO 0 p1->flags 0x0,0xffdfffff

security/landlock/task.c hook_task_kill() -> same_thread_group()

Type Parameter Key Value
DATA_SOURCE 0 p1 $0

drivers/android/binder.c binder_mmap() -> same_thread_group()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ipcp->lock

fs/proc/fd.c proc_fd_permission() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
DATA_SOURCE 0 p1 r pid_task
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgroup_mutex

kernel/sched/build_policy.c thread_group_cputime() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 1 p2 4096-ptr_max
DATA_SOURCE 1 p2 $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 1 &p2->sighand->siglock
HALF_LOCKED2 1 &p2->signal->exec_update_lock

io_uring/io_uring.c io_queue_iowq() -> same_thread_group()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->uring_lock

kernel/time/posix-timers.c good_sigevent() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
DATA_SOURCE 0 p1 r pid_task
LOCK2 rcu_read

kernel/signal.c check_kill_permission() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 1 p2 4096-ptr_max
CAPPED_DATA 1 p2->real_cred 1
DATA_SOURCE 1 p2 $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p2->parent->exit_code 0,256-65280[c]
USER_DATA 1 p2->real_parent->exit_code 0,256-65280[c]
LOCK2 rcu_read

kernel/signal.c kill_something_info() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-4931338248183341055,4931338248183341057-ptr_max
LOCK2 global &tasklist_lock

kernel/signal.c posixtimer_get_target() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 1-u64max
DATA_SOURCE 0 p1 r pid_task
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &tsk->sighand->siglock
HALF_LOCKED2 irq

kernel/signal.c ptrace_reparented() -> same_thread_group()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 1 p2 unit_byte
LOCK2 global &tasklist_lock

kernel/sys.c __do_sys_prlimit64() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
CAPPED_DATA 0 p1 1

kernel/sys.c __do_sys_prlimit64() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
CAPPED_DATA 0 p1 1

kernel/sys.c __do_sys_setpgid() -> same_thread_group()

Type Parameter Key Value
LOCK2 global &tasklist_lock
LOCK2 irq
LOCK2 rcu_read

kernel/sys.c __do_sys_setpgid() -> same_thread_group()

Type Parameter Key Value
LOCK2 global &tasklist_lock
LOCK2 irq
LOCK2 rcu_read

kernel/trace/bpf_trace.c uprobe_prog_run() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 1 p2 1-u64max
RX_PATH
TASK_NOT_RUNNING

fs/exec.c de_thread() -> same_thread_group()

Type Parameter Key Value
PARAM_VALUE 0 p1 4096-ptr_max
PARAM_VALUE 1 p2 4096-ptr_max
CAPPED_DATA 1 p2 1
DATA_SOURCE 1 p2 $0
LOCK2 global &tasklist_lock
LOCK2 irq