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 |