Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

net/sctp/socket.c sctp_for_each_endpoint() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ep->base.sk->__sk_common.skc_net.net->notrefcnt_tracker.dead 1
PARAM_VALUE 0 ep->base.sk->__sk_common.skc_net.net->notrefcnt_tracker.quarantine.prev 4096-ptr_max
PARAM_VALUE 0 ep->base.sk->__sk_common.skc_net.net->refcnt_tracker.dead 1
PARAM_VALUE 0 ep->base.sk->listener->__sk_common.skc_net.net->notrefcnt_tracker.dead 1
PARAM_VALUE 0 ep->base.sk->listener->__sk_common.skc_net.net->refcnt_tracker.dead 1
PARAM_VALUE 0 ep->base.sk->listener->ns_tracker->alloc_stack_handle 0-4294967295
PARAM_VALUE 0 ep->base.sk->listener->ns_tracker->dead 0-1
PARAM_VALUE 0 ep->base.sk->listener->ns_tracker->free_stack_handle 0-4294967295
PARAM_VALUE 0 ep->base.sk->listener->sk_bpf_storage->owner_refcnt.refs.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->listener->sk_callback_lock.raw_lock.cnts.counter 0-s32max
PARAM_VALUE 0 ep->base.sk->listener->sk_lock.owned 1
PARAM_VALUE 0 ep->base.sk->ns_tracker->alloc_stack_handle 0-4294967295
PARAM_VALUE 0 ep->base.sk->ns_tracker->dead 0-1
PARAM_VALUE 0 ep->base.sk->ns_tracker->free_stack_handle 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->cb->type 4
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->flags 1-u32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->arfs->filter_count s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->arfs->mode 0-4
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->last_filter_id s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->ntp_fltr_count s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->sp_task.cpu s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->sp_task.timer.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->sp_task.timer.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->sp_task.timer.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->sp_task.timer.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->dev->priv->sp_task.timer.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->__sk_common.skc_net.net->refcnt_tracker.dead 1
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->__sk_common.skc_prot 4096-ptr_max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->__sk_common.skc_state 0-9,11-255
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->failed_data_req 0-255
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->ns_tracker->alloc_stack_handle 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->ns_tracker->dead 0-1
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->ns_tracker->free_stack_handle 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_backlog.rmem_alloc.counter s32min-2147483646
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_backlog_rcv 0-1770402027252219903,1770402027252219905-3047833183539765247,3047833183539765249-u64max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_callback_lock.owner (-1)
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_callback_lock.owner_cpu u32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_callback_lock.raw_lock.cnts.counter 0-s32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_rcu.func 1-u64max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->sk_sndbuf s32min-(-1),4608-s32max
PARAM_VALUE 0 ep->base.sk->sk_backlog.head->sk->state 0-255
PARAM_VALUE 0 ep->base.sk->sk_callback_lock.owner (-1)
PARAM_VALUE 0 ep->base.sk->sk_callback_lock.owner_cpu u32max
PARAM_VALUE 0 ep->base.sk->sk_cgrp_data.cgroup->bpf.refcnt.percpu_count_ptr 1-u64max
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->callback_head.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->callback_head.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->callback_head.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->callback_head.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->callback_head.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->ops->pcpuc_entries.lock.owner (-1)
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->ops->pcpuc_entries.lock.owner_cpu u32max
PARAM_VALUE 0 ep->base.sk->sk_dst_cache->ops->pcpuc_entries.lock.raw_lock.val.counter 0-s32max
PARAM_VALUE 0 ep->base.sk->sk_lock.dep_map->name 0-255
PARAM_VALUE 0 ep->base.sk->sk_lock.owned 0
PARAM_VALUE 0 ep->base.sk->sk_lock.slock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ep->base.sk->sk_lock.wq.head.next 4096-ptr_max
PARAM_VALUE 0 ep->base.sk->sk_lock.wq.head.prev->next 4096-ptr_max
PARAM_VALUE 0 ep->base.sk->sk_lock.wq.head.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ep->base.sk->sk_memcg->high_work.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_owner->refcnt.counter 0-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->connect_cookie 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_conn->c_proposed_version 769
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_recv_w.cpu s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_recv_w.timer.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_recv_w.timer.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_recv_w.timer.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_recv_w.timer.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_recv_w.timer.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_send_w.cpu s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_send_w.timer.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_send_w.timer.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_send_w.timer.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_send_w.timer.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_send_w.timer.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->cp_state.counter 0-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.failfast_work.cpu s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.failfast_work.timer.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.failfast_work.timer.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.failfast_work.timer.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.failfast_work.timer.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.failfast_work.timer.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->ctrl->ctrl.state 2
PARAM_VALUE 0 ep->base.sk->sk_user_data->dev->carrier_down_count.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->dev->refcnt_tracker.untracked.refs.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->door_bell.done 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->door_bell.wait.lock.owner (-1)
PARAM_VALUE 0 ep->base.sk->sk_user_data->door_bell.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->kref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->login_work.cpu s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->login_work.timer.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->login_work.timer.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->login_work.timer.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->login_work.timer.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->login_work.timer.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->mpa_timer->type 5,7
PARAM_VALUE 0 ep->base.sk->sk_user_data->private->s_delegated_inos.xa_flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->qp->tx_ctx.tx_suspend 1
PARAM_VALUE 0 ep->base.sk->sk_user_data->read.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->reestablish_timeout 0,750
PARAM_VALUE 0 ep->base.sk->sk_user_data->ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->sc_kref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->sc_page->_refcount.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->sc_page->page_type 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->session->state s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->sock_state.counter s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->work.cpu s32min-s32max
PARAM_VALUE 0 ep->base.sk->sk_user_data->work.timer.flags 0-4294967295
PARAM_VALUE 0 ep->base.sk->sk_user_data->work.timer.is_hard 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->work.timer.is_lazy 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->work.timer.is_queued 0-1
PARAM_VALUE 0 ep->base.sk->sk_user_data->work.timer.is_soft 0-1
PARAM_VALUE 0 ep->base.sk->tcp_retransmit_timer.entry->pprev 4096-ptr_max
PARAM_VALUE 0 *ep->base.sk->sk_backlog.head->data->hdr 0-4294967295
PARAM_VALUE 0 *ep->base.sk->sk_backlog.head->dev->name 0-255
PARAM_VALUE 0 *ep->base.sk->sk_user_data->dev->pcpu_refcnt s32min-s32max
PARAM_VALUE 0 *ep->base.sk->sk_user_data->door_bell.wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *ep->base.sk->sk_user_data->private->o_auth.authorizer->session_key.key (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *ep->base.sk->sk_user_data->private->s_auth.authorizer->session_key.key (-4611686018427387904)-4611686018427387903
CAPPED_DATA 0 ep->base.sk 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/sctp/socket.c sctp_transport_lookup_process() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex

net/sctp/socket.c sctp_transport_traverse_process() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/sctp/socket.c sctp_transport_traverse_process() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/sctp/socket.c sctp_transport_traverse_process() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/sctp/input.c sctp_backlog_rcv() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

net/sctp/input.c sctp_rcv() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 ep r __sctp_rcv_lookup_endpoint
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/sctp/input.c sctp_rcv() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 ep r __sctp_rcv_lookup_endpoint
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/sctp/endpointola.c sctp_endpoint_free() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 0 ep->base.dead 1
PARAM_VALUE 0 ep->base.sk 4096-ptr_max
PARAM_VALUE 0 ep->base.sk->__sk_common.skc_state 7
PARAM_VALUE 0 ep->base.sk->sk_callback_lock.dep_map->name 0-255
PARAM_VALUE 0 ep->base.sk->sk_callback_lock.owner (-1)
PARAM_VALUE 0 ep->base.sk->sk_callback_lock.owner_cpu u32max
PARAM_VALUE 0 ep->base.sk->sk_callback_lock.raw_lock.cnts.counter 0-s32max
PARAM_VALUE 0 ep->base.sk->sk_reuseport_cb 0
PARAM_VALUE 0 ep->base.sk->sk_user_data 0
PARAM_VALUE 0 ep->node->next->pprev 1-u64max
PARAM_VALUE 0 ep->node.next 0
PARAM_VALUE 0 ep->node.next->pprev 1-u64max
PARAM_VALUE 0 ep->node.pprev 0
CAPPED_DATA 0 ep->base.sk 1
CAPPED_DATA 0 ep->base.sk->__sk_common.skc_net.net 1
DATA_SOURCE 0 ep $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

net/sctp/associola.c sctp_assoc_migrate() -> sctp_endpoint_put()

Type Parameter Key Value
RX_PATH
NOCHECK_CALL
LOCK2 newsk
LOCK2 oldsk

net/sctp/associola.c sctp_association_destroy() -> sctp_endpoint_put()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk

net/sctp/associola.c sctp_association_init() -> sctp_endpoint_put()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 0 ep->base.refcnt.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 ep $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk