Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

net/sctp/sm_statefuns.c sctp_sf_authenticate() -> sctp_auth_get_shkey()

Type Parameter Key Value
PARAM_VALUE 0 asoc 4096-ptr_max
BUF_SIZE 0 asoc (-1),3016
BUF_SIZE 0 asoc (-1),3016
CAPPED_DATA 0 asoc->c.my_vtag 1
DATA_SOURCE 0 asoc $0
PARAM_COMPARE 0 asoc->active_key_id != $1
PARAM_COMPARE 1 key_id != $0->active_key_id
NOSPEC 0 asoc->c.raw_addr_list_len
NOSPEC 0 asoc->peer.port
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 asoc->addip_serial 0-u32max[u]
USER_DATA 0 asoc->asoc_shared_key->len 0-393210[c]
USER_DATA 0 asoc->c.adaptation_ind 0-u32max[u]
USER_DATA 0 asoc->c.expiration s64min-s64max
USER_DATA 0 asoc->c.initial_tsn 0-u32max[u]
USER_DATA 0 asoc->c.my_ttag 0-u32max
USER_DATA 0 asoc->c.padding 0-255[u]
USER_DATA 0 asoc->c.peer_addr.sa.sa_family 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v4.sin_family 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_family 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_flowinfo 0-u32max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_port 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_scope_id 0-u32max[u]
USER_DATA 0 asoc->c.peer_ttag 0-u32max
USER_DATA 0 asoc->c.peer_vtag 0-u32max
USER_DATA 0 asoc->c.prsctp_capable 0-255[u]
USER_DATA 0 asoc->c.raw_addr_list_len 0-65331[c][u]
USER_DATA 0 asoc->c.sinit_max_instreams 0-u16max
USER_DATA 0 asoc->c.sinit_num_ostreams 0-u16max
USER_DATA 0 asoc->default_hmac_id 0-3
USER_DATA 0 asoc->force_delay 0-1
USER_DATA 0 asoc->frag_point 0,432-65512[c]
USER_DATA 0 asoc->next_tsn 0-u32max[u]
USER_DATA 0 asoc->peer.adaptation_ind 0-u32max
USER_DATA 0 asoc->peer.i.a_rwnd 0-u32max
USER_DATA 0 asoc->peer.i.init_tag 0-u32max
USER_DATA 0 asoc->peer.i.initial_tsn 0-u32max
USER_DATA 0 asoc->peer.i.num_inbound_streams 0-u16max
USER_DATA 0 asoc->peer.i.num_outbound_streams 0-u16max
USER_DATA 0 asoc->peer.port 0-u16max
USER_DATA 0 asoc->peer.primary_addr.sa.sa_family 2,10[c]
USER_DATA 0 asoc->peer.primary_addr.v4.sin_family 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v4.sin_port 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_family 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_flowinfo 0-u32max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_port 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_scope_id 0-u32max
USER_DATA 0 asoc->peer.primary_path->cacc.next_tsn_at_change 0-u32max[u]
USER_DATA 0 asoc->peer.primary_path->flowlabel 1048576-2097151[c]
USER_DATA 0 asoc->peer.primary_path->ipaddr.v4.sin_addr.s_addr 0-u32max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v4.sin_port 0-u16max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v6.sin6_port 0-u16max
USER_DATA 0 asoc->peer.primary_path->packet.destination_port 0-u16max
USER_DATA 0 asoc->peer.primary_path->packet.source_port 0-u16max
USER_DATA 0 asoc->peer.prsctp_capable 0-1[u]
USER_DATA 0 asoc->peer.retran_path->ipaddr.v4.sin_port 0-u16max
USER_DATA 0 asoc->peer.retran_path->ipaddr.v6.sin6_port 0-u16max
USER_DATA 0 asoc->peer.rwnd 0-u32max
USER_DATA 0 asoc->peer.tsn_map.base_tsn 0-u32max
USER_DATA 0 asoc->strreset_inseq 0-u32max
USER_DATA 0 asoc->strreset_outseq 0-u32max[u]
USER_DATA 1 key_id 0-u16max[u]
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/sctp/chunk.c sctp_datamsg_from_user() -> sctp_auth_get_shkey()

Type Parameter Key Value
PARAM_VALUE 0 asoc 4096-ptr_max
DATA_SOURCE 0 asoc $0
PARAM_COMPARE 0 asoc->active_key_id > $1
PARAM_COMPARE 1 key_id < $0->active_key_id
NOSPEC 0 asoc->c.raw_addr_list_len
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 asoc->addip_serial 0-u32max[u]
USER_DATA 0 asoc->c.adaptation_ind 0-u32max[u]
USER_DATA 0 asoc->c.expiration s64min-s64max
USER_DATA 0 asoc->c.initial_tsn 0-u32max[u]
USER_DATA 0 asoc->c.my_ttag 0-u32max
USER_DATA 0 asoc->c.padding 0-255[u]
USER_DATA 0 asoc->c.peer_addr.sa.sa_family 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v4.sin_family 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_family 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_flowinfo 0-u32max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_port 0-u16max[u]
USER_DATA 0 asoc->c.peer_addr.v6.sin6_scope_id 0-u32max[u]
USER_DATA 0 asoc->c.peer_ttag 0-u32max
USER_DATA 0 asoc->c.peer_vtag 0-u32max
USER_DATA 0 asoc->c.prsctp_capable 0-255[u]
USER_DATA 0 asoc->c.raw_addr_list_len 0-65331[c][u]
USER_DATA 0 asoc->c.sinit_max_instreams 0-u16max[u]
USER_DATA 0 asoc->c.sinit_num_ostreams 0-u16max[u]
USER_DATA 0 asoc->force_delay 0-1
USER_DATA 0 asoc->frag_point 0,4-65512[c]
USER_DATA 0 asoc->next_tsn 0-u32max[u]
USER_DATA 0 asoc->peer.adaptation_ind 0-u32max
USER_DATA 0 asoc->peer.port 0-u16max
USER_DATA 0 asoc->peer.primary_addr.sa.sa_family 2,10[c]
USER_DATA 0 asoc->peer.primary_addr.v4.sin_addr.s_addr 0-u32max
USER_DATA 0 asoc->peer.primary_addr.v4.sin_family 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v4.sin_port 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_family 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_flowinfo 0-u32max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_port 0-u16max
USER_DATA 0 asoc->peer.primary_addr.v6.sin6_scope_id 0-u32max
USER_DATA 0 asoc->peer.prsctp_capable 0-1[u]
USER_DATA 0 asoc->peer.tsn_map.base_tsn 0
USER_DATA 0 asoc->strreset_outseq 0-u32max[u]
LOCK2 sk
HALF_LOCKED2 &vq->mutex

net/sctp/auth.c sctp_auth_asoc_init_active_key() -> sctp_auth_get_shkey()

Type Parameter Key Value
PARAM_VALUE 0 asoc 4096-ptr_max
BUF_SIZE 0 asoc (-1),3016
BUF_SIZE 0 asoc (-1),3016
DATA_SOURCE 0 asoc $0
NOSPEC 0 asoc->c.raw_addr_list_len
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 asoc->addip_serial 0-u32max[u]
USER_DATA 0 asoc->c.adaptation_ind 0-u32max[u]
USER_DATA 0 asoc->c.expiration s64min-s64max
USER_DATA 0 asoc->c.initial_tsn 0-u32max[u]
USER_DATA 0 asoc->c.my_ttag 0-u32max
USER_DATA 0 asoc->c.padding 0-255[u]
USER_DATA 0 asoc->c.peer_ttag 0-u32max
USER_DATA 0 asoc->c.peer_vtag 0-u32max
USER_DATA 0 asoc->c.prsctp_capable 0-255[u]
USER_DATA 0 asoc->c.raw_addr_list_len 0-65331[c][u]
USER_DATA 0 asoc->c.sinit_max_instreams 0-65534[c]
USER_DATA 0 asoc->c.sinit_num_ostreams 0-65534[c]
USER_DATA 0 asoc->force_delay 0-1
USER_DATA 0 asoc->frag_point 0,432-65512[c]
USER_DATA 0 asoc->next_tsn 0-u32max[u]
USER_DATA 0 asoc->peer.active_path->cacc.next_tsn_at_change 0-u32max[u]
USER_DATA 0 asoc->peer.active_path->flowlabel 1048576-2097151[c]
USER_DATA 0 asoc->peer.active_path->packet.destination_port 0-u16max
USER_DATA 0 asoc->peer.active_path->packet.source_port 0-u16max
USER_DATA 0 asoc->peer.adaptation_ind 0-u32max
USER_DATA 0 asoc->peer.i.a_rwnd 0-u32max
USER_DATA 0 asoc->peer.i.init_tag 0-u32max
USER_DATA 0 asoc->peer.i.initial_tsn 0-u32max
USER_DATA 0 asoc->peer.i.num_inbound_streams 0-u16max
USER_DATA 0 asoc->peer.i.num_outbound_streams 0-u16max
USER_DATA 0 asoc->peer.last_data_from->cacc.next_tsn_at_change 0-u32max[u]
USER_DATA 0 asoc->peer.port 0-u16max
USER_DATA 0 asoc->peer.primary_path->cacc.next_tsn_at_change 0-u32max[u]
USER_DATA 0 asoc->peer.primary_path->flowlabel 1048576-2097151[c]
USER_DATA 0 asoc->peer.primary_path->ipaddr.sa.sa_family 2,10[c]
USER_DATA 0 asoc->peer.primary_path->ipaddr.v4.sin_addr.s_addr 0-u32max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v4.sin_family 0-u16max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v4.sin_port 0-u16max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v6.sin6_family 0-u16max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v6.sin6_flowinfo 0-u32max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v6.sin6_port 0-u16max
USER_DATA 0 asoc->peer.primary_path->ipaddr.v6.sin6_scope_id 0-u32max
USER_DATA 0 asoc->peer.primary_path->packet.destination_port 0-u16max
USER_DATA 0 asoc->peer.primary_path->packet.source_port 0-u16max
USER_DATA 0 asoc->peer.prsctp_capable 0-1[u]
USER_DATA 0 asoc->peer.retran_path->cacc.next_tsn_at_change 0-u32max[u]
USER_DATA 0 asoc->peer.retran_path->flowlabel 1048576-2097151[c]
USER_DATA 0 asoc->peer.retran_path->ipaddr.sa.sa_family 2,10[c]
USER_DATA 0 asoc->peer.retran_path->ipaddr.v4.sin_addr.s_addr 0-u32max
USER_DATA 0 asoc->peer.retran_path->ipaddr.v4.sin_family 0-u16max
USER_DATA 0 asoc->peer.retran_path->ipaddr.v6.sin6_family 0-u16max
USER_DATA 0 asoc->peer.retran_path->ipaddr.v6.sin6_flowinfo 0-u32max
USER_DATA 0 asoc->peer.retran_path->ipaddr.v6.sin6_scope_id 0-u32max
USER_DATA 0 asoc->peer.retran_path->packet.destination_port 0-u16max
USER_DATA 0 asoc->peer.retran_path->packet.source_port 0-u16max
USER_DATA 0 asoc->peer.rwnd 0-u32max
USER_DATA 0 asoc->peer.tsn_map.base_tsn 0-u32max
USER_DATA 0 asoc->strreset_chunk->transport->cacc.next_tsn_at_change 0-u32max[u]
USER_DATA 0 asoc->strreset_inseq 0-u32max
USER_DATA 0 asoc->strreset_outseq 0-u32max[u]
HALF_LOCKED2 sk