Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

security/keys/request_key.c construct_alloc_key() -> __key_link()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->datalen 4-u16max
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->domain_tag 4096-ptr_max
PARAM_VALUE 1 key->expiry s64max
PARAM_VALUE 1 key->flags 0,4-u64max
PARAM_VALUE 1 key->index_key->desc 0-255
PARAM_VALUE 1 key->index_key.desc_len 1-u16max
PARAM_VALUE 1 key->index_key.description 1-u64max
PARAM_VALUE 1 key->index_key.domain_tag->rcu.func 0
PARAM_VALUE 1 key->index_key.domain_tag->rcu.next 0
PARAM_VALUE 1 key->index_key.domain_tag->removed 0
PARAM_VALUE 1 key->index_key.domain_tag->usage.refs.counter 1
PARAM_VALUE 1 key->index_key.type 4096-ptr_max
PARAM_VALUE 1 key->perm 0,65536,851968,4128768,134217728,134283264,137297920,151584768,184614912,201523200,202047488,252641280,252641291,453050368,520159232,520290304,520814592,521076736,522125312,524222464,956366848,989921280,1023475712-u32max
PARAM_VALUE 1 key->restrict_link 0,4096-ptr_max
PARAM_VALUE 1 key->restrict_link->check 2597709569863184384,5988328617028292608,6748553998896947200,6954271548785111040,7527111731098238976
PARAM_VALUE 1 key->revoked_at s64max
PARAM_VALUE 1 key->security 0,4096-ptr_max
PARAM_VALUE 1 key->sem.count.counter 0
PARAM_VALUE 1 key->sem.dep_map->name 0-255
PARAM_VALUE 1 key->sem.first_waiter 0
PARAM_VALUE 1 key->sem.magic 4096-ptr_max
PARAM_VALUE 1 key->sem.osq.tail.counter 0
PARAM_VALUE 1 key->sem.owner.counter 0
PARAM_VALUE 1 key->serial 3-s32max
PARAM_VALUE 1 key->serial_node.__rb_parent_color 1
PARAM_VALUE 1 key->serial_node.rb_left 4096-ptr_max
PARAM_VALUE 1 key->serial_node.rb_right 4096-ptr_max
PARAM_VALUE 1 key->usage.refs.counter 1
PARAM_VALUE 1 key->user 1-u64max
PARAM_VALUE 2 _edit 2670731003012833280
PARAM_VALUE 2 *_edit 4096-ptr_max
DATA_SOURCE 0 keyring $1
DATA_SOURCE 1 key r key_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
NO_OVERFLOW_SIMPLE 1 key->quotalen
NO_OVERFLOW_SIMPLE 1 key->user->qnbytes
LOCK2 &user->cons_lock
LOCK2 global &key_construction_mutex
HALF_LOCKED2 &idmap->idmap_mutex
HALF_LOCKED2 global &key_types_sem
HALF_LOCKED2 0 &keyring->sem
TYPE_LOCK (struct key_user)->cons_lock

security/keys/request_key.c construct_alloc_key() -> __key_link()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->datalen 4-u16max
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->index_key->desc 0-255
PARAM_VALUE 1 key->index_key.desc_len 1-u16max
PARAM_VALUE 1 key->index_key.domain_tag->rcu.func 0
PARAM_VALUE 1 key->index_key.domain_tag->rcu.next 0
PARAM_VALUE 1 key->index_key.domain_tag->removed 0
PARAM_VALUE 1 key->index_key.domain_tag->usage.refs.counter 1
PARAM_VALUE 1 key->restrict_link->check 2597709569863184384,5988328617028292608,6748553998896947200,6954271548785111040,7527111731098238976
PARAM_VALUE 1 key->sem.dep_map->name 0-255
PARAM_VALUE 1 key->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 _edit 2670731003012833280
PARAM_VALUE 2 *_edit 4096-ptr_max
DATA_SOURCE 0 keyring $1
DATA_SOURCE 1 key r key_ref_to_ptr
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
NO_OVERFLOW_SIMPLE 1 key->quotalen
NO_OVERFLOW_SIMPLE 1 key->user->qnbytes
LOCK2 &user->cons_lock
HALF_LOCKED2 &idmap->idmap_mutex
HALF_LOCKED2 global &key_types_sem
HALF_LOCKED2 0 &keyring->sem
TYPE_LOCK (struct key_user)->cons_lock

security/keys/key.c __key_instantiate_and_link() -> __key_link()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->datalen 4-u16max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 0 keyring->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->state 1
PARAM_VALUE 1 key->type 4096-ptr_max
PARAM_VALUE 1 key->user 4096-ptr_max
PARAM_VALUE 2 _edit 3902931883866345472,7794118225265389568
PARAM_VALUE 2 *_edit 0,4096-ptr_max
BUF_SIZE 0 keyring (-1)-s32max
BUF_SIZE 0 keyring (-1)-s32max
CAPPED_DATA 0 keyring 1
DATA_SOURCE 0 keyring $2
DATA_SOURCE 1 key $0
DATA_SOURCE 2 _edit $4
STR_LEN 0 keyring (-1)-127
STR_LEN 1 key (-1)-127
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 key->datalen 0[c]
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
NO_OVERFLOW_SIMPLE 0 keyring->user->qnbytes
NO_OVERFLOW_SIMPLE 1 key->quotalen
NO_OVERFLOW_SIMPLE 1 key->user->qnbytes
LOCK2 global &key_construction_mutex
HALF_LOCKED2 global &key_types_sem
HALF_LOCKED2 0 &keyring->sem

security/keys/key.c key_reject_and_link() -> __key_link()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->datalen 4-u16max
PARAM_VALUE 0 keyring->restrict_link 0
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 0 keyring->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->index_key.desc_len 1-u16max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
PARAM_VALUE 1 key->user 4096-ptr_max
PARAM_VALUE 2 _edit 3463464789467828224
PARAM_VALUE 2 *_edit 4096-ptr_max
CAPPED_DATA 1 key->serial 1
DATA_SOURCE 0 keyring $3
DATA_SOURCE 1 key $0
RX_PATH
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 key->quotalen
LOCK2 global &key_construction_mutex
LOCK2 0 &keyring->sem
TYPE_LOCK (struct key)->sem

security/keys/keyring.c key_link() -> __key_link()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->datalen 4-u16max
PARAM_VALUE 0 keyring->restrict_link 0,4096-ptr_max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->index_key.desc_len 1-u16max
PARAM_VALUE 1 key->sem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 key->sem.first_waiter->type 0-1
PARAM_VALUE 2 _edit 7393829948701548544
PARAM_VALUE 2 *_edit 4096-ptr_max
BUF_SIZE 0 keyring (-1)-s32max
BUF_SIZE 0 keyring (-1)-s32max
CAPPED_DATA 1 key 1
DATA_SOURCE 0 keyring $0
DATA_SOURCE 1 key $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 keyring->quotalen
NO_OVERFLOW_SIMPLE 0 keyring->user->qnbytes
NO_OVERFLOW_SIMPLE 1 key->quotalen
NO_OVERFLOW_SIMPLE 1 key->user->qnbytes
LOCK2 0 &keyring->sem
HALF_LOCKED2 &user_ns->keyring_sem
HALF_LOCKED2 global &key_types_sem
TYPE_LOCK (struct key)->sem

security/keys/keyring.c key_move() -> __key_link()

Type Parameter Key Value
PARAM_VALUE 0 keyring 4096-ptr_max
PARAM_VALUE 0 keyring->datalen 4-u16max
PARAM_VALUE 0 keyring->restrict_link 0,4096-ptr_max
PARAM_VALUE 0 keyring->sem.dep_map->name 0-255
PARAM_VALUE 0 keyring->sem.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 keyring->sem.first_waiter->type 0-1
PARAM_VALUE 0 keyring->sem.osq.tail.counter 0-s32max
PARAM_VALUE 0 keyring->type 4096-ptr_max
PARAM_VALUE 0 keyring->user->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 key 4096-ptr_max
PARAM_VALUE 1 key->index_key.desc_len 1-u16max
PARAM_VALUE 2 _edit 1378343099394371584
PARAM_VALUE 2 *_edit 4096-ptr_max
CAPPED_DATA 0 keyring 1
DATA_SOURCE 0 keyring $2
DATA_SOURCE 1 key $0
NOCHECK_CALL
LOCK2 &from_keyring->sem
LOCK2 0 &keyring->sem
TYPE_LOCK (struct key)->sem