Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\bpf\cgroup.c Create Date:2022-07-28 13:28:20
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__cgroup_bpf_run_filter_getsockopt

Proto:int __cgroup_bpf_run_filter_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen, int max_optlen, int retval)

Type:int

Parameter:

TypeParameterName
struct sock *sk
intlevel
intoptname
char __user *optval
int __user *optlen
intmax_optlen
intretval
1059  cgrp = sock_cgroup_ptr( & sk_cgrp_data)
1060  struct bpf_sockopt_kern ctx = {sk = sk, level = level, optname = optname, retval = retval, }
1072  If Not cgroup_bpf_enabled || __cgroup_bpf_prog_array_is_empty(cgrp, BPF_CGROUP_GETSOCKOPT) Then Return retval
1076  ret = sockopt_alloc_buf( & ctx, max_optlen)
1077  If ret Then Return ret
1080  optlen = max_optlen
1082  If Not retval Then
1091  ret = -EFAULT
1092  Go to out
1095  If optlen > max_optlen Then optlen = max_optlen
1098  If copy_from_user(optval, optval, optlen) != 0 Then
1099  ret = -EFAULT
1100  Go to out
1104  lock_sock(sk)
1105  ret = BPF_PROG_RUN_ARRAY( array of effective progs in this cgroup [BPF_CGROUP_GETSOCKOPT], & ctx, BPF_PROG_RUN)
1107  release_sock(sk)
1109  If Not ret Then
1110  ret = -EPERM
1111  Go to out
1114  If optlen > max_optlen Then
1115  ret = -EFAULT
1116  Go to out
1122  If retval != 0 && retval != retval Then
1123  ret = -EFAULT
1124  Go to out
1127  If copy_to_user(optval, optval, optlen) || Write a simple value into user space(optlen, optlen) Then
1129  ret = -EFAULT
1130  Go to out
1133  ret = retval
1135  out :
1136  sockopt_free_buf( & ctx)
1137  Return ret