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:

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