Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 3 files:

Smatch caller information:

net/ipv4/ping.c ping_init_sock() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
CAPPED_DATA 0 group_info->ngroups 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &bt_proto_lock

fs/nfsd/auth.c nfsd_setuser() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 *group_info->gid s32min-s32max
BUF_SIZE 0 group_info s32min-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/smb/server/smb_common.c __ksmbd_override_fsids() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 *group_info->gid s32min-s32max
BUF_SIZE 0 group_info s32min-s32max
DATA_SOURCE 0 group_info r groups_alloc
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/sunrpc/auth_gss/svcauth_gss.c free_svc_cred() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
NOCHECK_CALL

net/sunrpc/auth_gss/svcauth_gss.c svcauth_gss_release() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
NOCHECK_CALL

fs/nfsd/nfs4state.c free_svc_cred() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/uid16.c __do_sys_setgroups16() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 1-65536
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 1-65536[c]

kernel/uid16.c __do_sys_setgroups16() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 0-65536
PARAM_VALUE 0 *group_info->gid s32min-s32max
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOSPEC 0 group_info->ngroups
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 0-65536[c]

kernel/uid16.c __do_sys_setgroups16() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 1-65536
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 1-65536[c]

kernel/uid16.c __do_sys_setgroups16() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 0-65536
PARAM_VALUE 0 *group_info->gid s32min-s32max
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOSPEC 0 group_info->ngroups
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 0-65536[c]

security/safesetid/lsm.c safesetid_task_fix_setgroups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->gid 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 1-s32max
NOCHECK_CALL

security/safesetid/lsm.c safesetid_task_fix_setgroups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
CAPPED_DATA 0 group_info->ngroups 1
NOCHECK_CALL

fs/nfsd/localio.c nfsd_open_local_fh() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/nfs/dir.c nfs_access_free_entry() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/sunrpc/svcauth_unix.c sunrpc_nl_parse_one_unix_gid() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 0-8192
PARAM_VALUE 0 group_info->usage.refs.counter 1
BUF_SIZE 0 group_info s32min-s32max
FUZZY_MAX 0 group_info->ngroups 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/sunrpc/svcauth_unix.c svcauth_null_release() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
NOCHECK_CALL

net/sunrpc/svcauth_unix.c svcauth_unix_release() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
NOCHECK_CALL

net/sunrpc/svcauth_unix.c svcauth_unix_set_client() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
NOCHECK_CALL

net/sunrpc/svcauth_unix.c unix_gid_free() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu

net/sunrpc/svcauth_unix.c unix_gid_parse() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 0-8192
PARAM_VALUE 0 group_info->usage.refs.counter 1
BUF_SIZE 0 group_info s32min-s32max
DATA_SOURCE 0 group_info r groups_alloc
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 0-8192
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

net/sunrpc/auth_gss/gss_rpc_xdr.c free_svc_cred() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/sunrpc/auth_gss/gss_rpc_xdr.c gssx_dec_linux_creds() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->usage.refs.counter 1
BUF_SIZE 0 group_info s32min-s32max
DATA_SOURCE 0 group_info r groups_alloc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 group_info->ngroups s32min-s32max

net/sunrpc/auth_gss/gss_rpc_upcall.c free_svc_cred() -> groups_free()

Type Parameter Key Value
NOCHECK_CALL

kernel/cred.c put_cred_rcu() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu

kernel/groups.c __do_sys_setgroups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 1-65536
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 1-65536[c]

kernel/groups.c __do_sys_setgroups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 0-65536
PARAM_VALUE 0 *group_info->gid s32min-s32max
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOSPEC 0 group_info->ngroups
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 0-65536[c]

kernel/groups.c __do_sys_setgroups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 1-65536
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 1-65536[c]

kernel/groups.c __do_sys_setgroups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
PARAM_VALUE 0 group_info->ngroups 0-65536
PARAM_VALUE 0 *group_info->gid s32min-s32max
BUF_SIZE 0 group_info s32min-s32max
CAPPED_DATA 0 group_info->ngroups 1
DATA_SOURCE 0 group_info r groups_alloc
NOSPEC 0 group_info->ngroups
NOCHECK_CALL
USER_DATA 0 group_info->ngroups 0-65536[c]

kernel/groups.c set_groups() -> groups_free()

Type Parameter Key Value
PARAM_VALUE 0 group_info 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL