Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a macro:
Defined in 1 files as a function:
Referenced in 15 files:
- block/sed-opal.c, line 325
- crypto/asymmetric_keys/restrict.c, line 305
- fs/afs/write.c, line 52
- fs/ecryptfs/keystore.c, line 507
- fs/nfs/nfs4idmap.c, line 323
- kernel/bpf/helpers.c, line 4336
- net/dns_resolver/dns_query.c, line 107
- net/rxrpc/rxgk.c
- net/rxrpc/rxkad.c
- net/rxrpc/security.c
- security/keys/dh.c, line 36
- security/keys/keyctl.c, line 808
- security/keys/permission.c, line 123
- security/keys/process_keys.c
- security/keys/request_key.c
Smatch caller information:
block/sed-opal.c read_sed_opal_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | key->sem.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner_cpu | u32max |
| CAPPED_DATA | 0 | &key->sem | 1 |
| DATA_SOURCE | 0 | key | r key_ref_to_ptr |
| CAPABLE | 0 | 21 | |
| LOCK2 | 0 | &key->sem | |
| HALF_LOCKED2 | &dev->dev_lock | ||
| TYPE_LOCK | (struct key)->sem |
security/keys/request_key.c call_sbin_request_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &idmap->idmap_mutex | ||
| HALF_LOCKED2 | global &key_types_sem |
security/keys/request_key.c wait_for_key_construction() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->sem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | key->sem.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | key | (-1)-s32max |
| BUF_SIZE | 0 | key | (-1)-s32max |
| DATA_SOURCE | 0 | key | $0 |
| NOSPEC | 0 | key->serial | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | key->serial | 1-s32max[c] |
| NO_OVERFLOW_SIMPLE | 0 | key->quotalen | |
| HALF_LOCKED2 | &idmap->idmap_mutex | ||
| HALF_LOCKED2 | global &key_types_sem |
security/keys/dh.c dh_data_from_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | key->sem.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | key->type | 7296958975019053056 |
| CAPPED_DATA | 0 | &key->sem | 1 |
| DATA_SOURCE | 0 | key | r key_ref_to_ptr |
| LOCK2 | 0 | &key->sem | |
| TYPE_LOCK | (struct key)->sem |
fs/nfs/nfs4idmap.c nfs_idmap_get_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->perm | 0,65536-u32max |
| PARAM_VALUE | 0 | key->sem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | key->sem.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | key | (-1)-s32max |
| BUF_SIZE | 0 | key | (-1)-s32max |
| CAPPED_DATA | 0 | key->expiry | 1 |
| DATA_SOURCE | 0 | key | r nfs_idmap_request_key |
| BIT_INFO | 0 | key->perm | 0x10000,0xffffffff |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | key->quotalen | |
| LOCK2 | rcu_read |
fs/ecryptfs/keystore.c ecryptfs_find_global_auth_tok_for_sig() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mount_crypt_stat->global_auth_tok_list_mutex | ||
| HALF_LOCKED2 | &crypt_stat->keysig_list_mutex | ||
| TYPE_LOCK | (struct ecryptfs_mount_crypt_stat)->global_auth_tok_list_mutex |
net/rxrpc/security.c rxrpc_init_client_call_security() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| BUF_SIZE | 0 | key | (-1)-s32max |
| BUF_SIZE | 0 | key | (-1)-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | key | unit_byte |
| LOCK2 | &rx->sk | ||
| TYPE_LOCK | (struct rxrpc_sock)->sk |
net/rxrpc/security.c rxrpc_look_up_server_security() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| DATA_SOURCE | 0 | key | r key_ref_to_ptr |
| LOCK2 | &conn->local->services_lock | ||
| LOCK2 | &pool->lock | ||
| TYPE_LOCK | (struct rxrpc_local)->services_lock |
net/rxrpc/rxgk.c rxgk_respond_to_challenge() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| TASK_NOT_RUNNING | |||
| UNITS | 0 | key | unit_byte |
| HALF_LOCKED2 | &pool->lock |
net/rxrpc/rxgk.c rxgk_secure_packet() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | key | unit_byte |
| HALF_LOCKED2 | &call->user_mutex |
net/rxrpc/rxgk.c rxgk_validate_challenge() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 1-u64max |
| UNITS | 0 | key | unit_byte |
fs/afs/write.c afs_get_writeback_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vnode->wb_lock | ||
| TYPE_LOCK | (struct afs_vnode)->wb_lock |
net/dns_resolver/dns_query.c dns_query() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->expiry | (-9223372036854775807)-s64max |
| PARAM_VALUE | 0 | key->perm | 0,65536-u32max |
| PARAM_VALUE | 0 | key->revoked_at | (-9223372036854775807)-s64max |
| PARAM_VALUE | 0 | key->sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | key->sem.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | key->state | 0-s16max |
| BUF_SIZE | 0 | key | (-1)-s32max |
| BUF_SIZE | 0 | key | (-1)-s32max |
| CAPPED_DATA | 0 | key->expiry | 1 |
| CAPPED_DATA | 0 | &key->sem | 1 |
| DATA_SOURCE | 0 | key | r request_key_tag |
| BIT_INFO | 0 | key->perm | 0x10000,0xffffffff |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | key->quotalen | |
| LOCK2 | 0 | &key->sem | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct key)->sem |
security/keys/keyctl.c __keyctl_read_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | key->sem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | key->sem.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | key->sem.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | key->type | 4096-ptr_max |
| PARAM_VALUE | 0 | key->type->read | 1-u64max |
| CAPPED_DATA | 0 | &key->sem | 1 |
| DATA_SOURCE | 0 | key | $0 |
| LOCK2 | 0 | &key->sem | |
| TYPE_LOCK | (struct key)->sem |
crypto/asymmetric_keys/restrict.c key_or_keyring_common() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &dest_keyring->sem | ||
| HALF_LOCKED2 | global &key_types_sem | ||
| TYPE_LOCK | (struct key)->sem |
net/rxrpc/rxkad.c rxkad_respond_to_challenge() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | key | unit_byte |
| HALF_LOCKED2 | &pool->lock |
net/rxrpc/rxkad.c rxkad_secure_packet() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | key | unit_byte |
| HALF_LOCKED2 | &call->user_mutex |
net/rxrpc/rxkad.c rxkad_validate_challenge() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 1-u64max |
| UNITS | 0 | key | unit_byte |
security/keys/process_keys.c lookup_user_key() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 4096-ptr_max |
| PARAM_VALUE | 0 | key->serial | 1-s32max |
| CAPPED_DATA | 0 | key->serial | 1 |
| NOSPEC | 0 | key->serial | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | key->serial | 1-s32max[c] |
| NO_OVERFLOW_SIMPLE | 0 | key->quotalen | |
| HALF_LOCKED2 | &buffer->mutex | ||
| HALF_LOCKED2 | &dev->mutex | ||
| HALF_LOCKED2 | &frag->frag_sem | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | sk |
security/keys/process_keys.c search_process_keyrings_rcu() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &user->cons_lock | ||
| HALF_LOCKED2 | global &key_construction_mutex | ||
| HALF_LOCKED2 | rcu_read |
kernel/bpf/helpers.c bpf_verify_pkcs7_signature() -> key_validate()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | key | 0-2,4096-ptr_max |