/Linux-v5.4/net/ipv4/ |
D | ip_options.c | 50 memcpy(iph+sizeof(struct iphdr), opt->__data, opt->optlen); in ip_options_build() 95 int optlen; in __ip_options_echo() local 99 if (sopt->optlen == 0) in __ip_options_echo() 106 optlen = sptr[sopt->rr+1]; in __ip_options_echo() 108 dopt->rr = dopt->optlen + sizeof(struct iphdr); in __ip_options_echo() 109 memcpy(dptr, sptr+sopt->rr, optlen); in __ip_options_echo() 110 if (sopt->rr_needaddr && soffset <= optlen) { in __ip_options_echo() 111 if (soffset + 3 > optlen) in __ip_options_echo() 116 dptr += optlen; in __ip_options_echo() 117 dopt->optlen += optlen; in __ip_options_echo() [all …]
|
D | ip_sockglue.c | 78 if (IPCB(skb)->opt.optlen == 0) in ip_cmsg_recv_opts() 81 put_cmsg(msg, SOL_IP, IP_RECVOPTS, IPCB(skb)->opt.optlen, in ip_cmsg_recv_opts() 92 if (IPCB(skb)->opt.optlen == 0) in ip_cmsg_recv_retopts() 101 put_cmsg(msg, SOL_IP, IP_RETOPTS, opt->optlen, opt->__data); in ip_cmsg_recv_retopts() 591 int optname, char __user *optval, unsigned int optlen) in do_ip_setsockopt() argument 623 if (optlen >= sizeof(int)) { in do_ip_setsockopt() 626 } else if (optlen >= sizeof(char)) { in do_ip_setsockopt() 640 return ip_mroute_setsockopt(sk, optname, optval, optlen); in do_ip_setsockopt() 652 if (optlen > 40) in do_ip_setsockopt() 655 optval, optlen); in do_ip_setsockopt() [all …]
|
D | udp_impl.h | 16 char __user *optval, unsigned int optlen); 18 char __user *optval, int __user *optlen); 22 char __user *optval, unsigned int optlen); 24 char __user *optval, int __user *optlen);
|
D | raw.c | 582 sizeof(*inet_opt) + inet_opt->opt.optlen); in raw_sendmsg() 812 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen) in raw_seticmpfilter() argument 814 if (optlen > sizeof(struct icmp_filter)) in raw_seticmpfilter() 815 optlen = sizeof(struct icmp_filter); in raw_seticmpfilter() 816 if (copy_from_user(&raw_sk(sk)->filter, optval, optlen)) in raw_seticmpfilter() 821 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen) in raw_geticmpfilter() argument 825 if (get_user(len, optlen)) in raw_geticmpfilter() 833 if (put_user(len, optlen) || in raw_geticmpfilter() 841 char __user *optval, unsigned int optlen) in do_raw_setsockopt() argument 847 return raw_seticmpfilter(sk, optval, optlen); in do_raw_setsockopt() [all …]
|
/Linux-v5.4/net/ipv6/ |
D | ipv6_sockglue.c | 140 char __user *optval, unsigned int optlen) in do_ipv6_setsockopt() argument 151 if (optlen >= sizeof(int)) { in do_ipv6_setsockopt() 161 return ip6_mroute_setsockopt(sk, optname, optval, optlen); in do_ipv6_setsockopt() 170 if (optlen < sizeof(int)) in do_ipv6_setsockopt() 255 if (optlen < sizeof(int) || in do_ipv6_setsockopt() 263 if (optlen < sizeof(int)) in do_ipv6_setsockopt() 270 if (optlen < sizeof(int)) in do_ipv6_setsockopt() 277 if (optlen < sizeof(int)) in do_ipv6_setsockopt() 284 if (optlen < sizeof(int)) in do_ipv6_setsockopt() 291 if (optlen < sizeof(int)) in do_ipv6_setsockopt() [all …]
|
D | udp_impl.h | 19 char __user *optval, int __user *optlen); 21 char __user *optval, unsigned int optlen); 24 char __user *optval, unsigned int optlen); 26 char __user *optval, int __user *optlen);
|
D | exthdrs_core.c | 136 int optlen; in ipv6_find_tlv() local 143 optlen = 1; in ipv6_find_tlv() 146 optlen = nh[offset + 1] + 2; in ipv6_find_tlv() 147 if (optlen > len) in ipv6_find_tlv() 151 offset += optlen; in ipv6_find_tlv() 152 len -= optlen; in ipv6_find_tlv()
|
D | raw.c | 975 char __user *optval, int optlen) in rawv6_seticmpfilter() argument 979 if (optlen > sizeof(struct icmp6_filter)) in rawv6_seticmpfilter() 980 optlen = sizeof(struct icmp6_filter); in rawv6_seticmpfilter() 981 if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen)) in rawv6_seticmpfilter() 992 char __user *optval, int __user *optlen) in rawv6_geticmpfilter() argument 998 if (get_user(len, optlen)) in rawv6_geticmpfilter() 1004 if (put_user(len, optlen)) in rawv6_geticmpfilter() 1018 char __user *optval, unsigned int optlen) in do_rawv6_setsockopt() argument 1065 char __user *optval, unsigned int optlen) in rawv6_setsockopt() argument 1074 return rawv6_seticmpfilter(sk, level, optname, optval, optlen); in rawv6_setsockopt() [all …]
|
/Linux-v5.4/tools/testing/selftests/bpf/prog_tests/ |
D | sockopt_multi.c | 60 socklen_t optlen; in run_getsockopt_test() local 74 optlen = 1; in run_getsockopt_test() 75 err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen); in run_getsockopt_test() 97 optlen = 1; in run_getsockopt_test() 98 err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen); in run_getsockopt_test() 121 optlen = 1; in run_getsockopt_test() 122 err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen); in run_getsockopt_test() 147 optlen = 1; in run_getsockopt_test() 148 err = getsockopt(sock_fd, SOL_IP, IP_TOS, &buf, &optlen); in run_getsockopt_test() 166 optlen = 1; in run_getsockopt_test() [all …]
|
D | sockopt_sk.c | 15 socklen_t optlen; in getsetsockopt() local 33 optlen = 1; in getsetsockopt() 34 err = getsockopt(fd, SOL_IP, IP_TOS, &buf, &optlen); in getsetsockopt() 65 optlen = 4; in getsetsockopt() 66 err = getsockopt(fd, SOL_CUSTOM, 0, &buf, &optlen); in getsetsockopt() 72 if (optlen != 1) { in getsetsockopt() 73 log_err("Unexpected optlen %d != 1", optlen); in getsetsockopt() 91 optlen = 4; in getsetsockopt() 92 err = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &buf, &optlen); in getsetsockopt() 114 optlen = sizeof(buf.cc); in getsetsockopt() [all …]
|
D | sockopt.c | 229 offsetof(struct bpf_sockopt, optlen)), 257 offsetof(struct bpf_sockopt, optlen)), 300 offsetof(struct bpf_sockopt, optlen)), 477 offsetof(struct bpf_sockopt, optlen)), 531 offsetof(struct bpf_sockopt, optlen)), 578 offsetof(struct bpf_sockopt, optlen)), 585 offsetof(struct bpf_sockopt, optlen)), 606 offsetof(struct bpf_sockopt, optlen)), 622 offsetof(struct bpf_sockopt, optlen)), 640 offsetof(struct bpf_sockopt, optlen)), [all …]
|
/Linux-v5.4/net/sctp/ |
D | socket.c | 1380 int __user *optlen) in sctp_getsockopt_connectx3() argument 1413 if (put_user(sizeof(assoc_id), optlen)) in sctp_getsockopt_connectx3() 2193 unsigned int optlen) in sctp_setsockopt_disable_fragments() argument 2197 if (optlen < sizeof(int)) in sctp_setsockopt_disable_fragments() 2209 unsigned int optlen) in sctp_setsockopt_events() argument 2217 if (optlen > sizeof(struct sctp_event_subscribe)) in sctp_setsockopt_events() 2220 if (copy_from_user(&subscribe, optval, optlen)) in sctp_setsockopt_events() 2223 for (i = 0; i < optlen; i++) in sctp_setsockopt_events() 2263 unsigned int optlen) in sctp_setsockopt_autoclose() argument 2271 if (optlen != sizeof(int)) in sctp_setsockopt_autoclose() [all …]
|
/Linux-v5.4/net/dccp/ |
D | proto.c | 405 char __user *optval, unsigned int optlen) in dccp_setsockopt_service() argument 411 optlen > DCCP_SERVICE_LIST_MAX_LEN * sizeof(u32)) in dccp_setsockopt_service() 414 if (optlen > sizeof(service)) { in dccp_setsockopt_service() 415 sl = kmalloc(optlen, GFP_KERNEL); in dccp_setsockopt_service() 419 sl->dccpsl_nr = optlen / sizeof(u32) - 1; in dccp_setsockopt_service() 422 optlen - sizeof(service)) || in dccp_setsockopt_service() 476 char __user *optval, unsigned int optlen) in dccp_setsockopt_ccid() argument 481 if (optlen < 1 || optlen > DCCP_FEAT_MAX_SP_VALS) in dccp_setsockopt_ccid() 484 val = memdup_user(optval, optlen); in dccp_setsockopt_ccid() 490 rc = dccp_feat_register_sp(sk, DCCPF_CCID, 1, val, optlen); in dccp_setsockopt_ccid() [all …]
|
/Linux-v5.4/net/ipv4/bpfilter/ |
D | sockopt.c | 27 unsigned int optlen, bool is_set) in bpfilter_mbox_request() argument 46 err = bpfilter_ops.sockopt(sk, optname, optval, optlen, is_set); in bpfilter_mbox_request() 53 unsigned int optlen) in bpfilter_ip_set_sockopt() argument 55 return bpfilter_mbox_request(sk, optname, optval, optlen, true); in bpfilter_ip_set_sockopt() 59 int __user *optlen) in bpfilter_ip_get_sockopt() argument 63 if (get_user(len, optlen)) in bpfilter_ip_get_sockopt()
|
/Linux-v5.4/net/ipv6/netfilter/ |
D | ip6t_hbh.c | 57 unsigned int optlen; in hbh_mt6() local 138 optlen = *lp + 2; in hbh_mt6() 141 optlen = 1; in hbh_mt6() 145 pr_debug("len%04X\n", optlen); in hbh_mt6() 147 if ((ptr > skb->len - optlen || hdrlen < optlen) && in hbh_mt6() 152 ptr += optlen; in hbh_mt6() 153 hdrlen -= optlen; in hbh_mt6()
|
/Linux-v5.4/net/netfilter/ |
D | xt_tcpmss.c | 33 unsigned int i, optlen; in tcpmss_mt() local 44 optlen = th->doff*4 - sizeof(*th); in tcpmss_mt() 45 if (!optlen) in tcpmss_mt() 49 op = skb_header_pointer(skb, par->thoff + sizeof(*th), optlen, _opt); in tcpmss_mt() 53 for (i = 0; i < optlen; ) { in tcpmss_mt() 55 && (optlen - i) >= TCPOLEN_MSS in tcpmss_mt()
|
/Linux-v5.4/net/rds/ |
D | af_rds.c | 331 int optlen) in rds_set_bool_option() argument 335 if (optlen < sizeof(int)) in rds_set_bool_option() 344 int optlen) in rds_cong_monitor() argument 348 ret = rds_set_bool_option(&rs->rs_cong_monitor, optval, optlen); in rds_cong_monitor() 362 int optlen) in rds_set_transport() argument 369 if (optlen != sizeof(int)) in rds_set_transport() 384 int optlen, int optname) in rds_enable_recvtstamp() argument 388 if (optlen != sizeof(int)) in rds_enable_recvtstamp() 408 int optlen) in rds_recv_track_latency() argument 413 if (optlen != sizeof(struct rds_rx_trace_so)) in rds_recv_track_latency() [all …]
|
/Linux-v5.4/net/ |
D | compat.c | 341 char __user *optval, unsigned int optlen) in do_set_attach_filter() argument 354 char __user *optval, unsigned int optlen) in compat_sock_setsockopt() argument 359 optval, optlen); in compat_sock_setsockopt() 360 return sock_setsockopt(sock, level, optname, optval, optlen); in compat_sock_setsockopt() 364 char __user *optval, unsigned int optlen) in __compat_sys_setsockopt() argument 369 if (optlen > INT_MAX) in __compat_sys_setsockopt() 382 optname, optval, optlen); in __compat_sys_setsockopt() 385 optname, optval, optlen); in __compat_sys_setsockopt() 388 optname, optval, optlen); in __compat_sys_setsockopt() 395 char __user *, optval, unsigned int, optlen) in COMPAT_SYSCALL_DEFINE5() argument [all …]
|
/Linux-v5.4/net/can/ |
D | raw.c | 488 char __user *optval, unsigned int optlen) in raw_setsockopt() argument 504 if (optlen % sizeof(struct can_filter) != 0) in raw_setsockopt() 507 if (optlen > CAN_RAW_FILTER_MAX * sizeof(struct can_filter)) in raw_setsockopt() 510 count = optlen / sizeof(struct can_filter); in raw_setsockopt() 514 filter = memdup_user(optval, optlen); in raw_setsockopt() 568 if (optlen != sizeof(err_mask)) in raw_setsockopt() 571 if (copy_from_user(&err_mask, optval, optlen)) in raw_setsockopt() 607 if (optlen != sizeof(ro->loopback)) in raw_setsockopt() 610 if (copy_from_user(&ro->loopback, optval, optlen)) in raw_setsockopt() 616 if (optlen != sizeof(ro->recv_own_msgs)) in raw_setsockopt() [all …]
|
/Linux-v5.4/Documentation/bpf/ |
D | prog_cgroup_sockopt.rst | 16 all input arguments: ``level``, ``optname``, ``optval`` and ``optlen``. 26 If BPF program sets ``optlen`` to -1, the control will be returned 30 Note, that ``optlen`` can not be increased beyond the user-supplied 44 sockopt. The BPF hook can observe ``optval``, ``optlen`` and ``retval`` 46 the values above, adjust ``optlen`` and reset ``retval`` to 0. If ``optlen`` 60 * ``1`` - success: copy ``optval`` and ``optlen`` to userspace, return 78 adjust ``optval``, ``optlen`` and reset ``retval`` to 0. After that 84 to the input arguments (``level``, ``optname``, ``optval``, ``optlen``),
|
/Linux-v5.4/net/xfrm/ |
D | xfrm_output.c | 146 int hdrlen, optlen; in xfrm4_beet_encap_add() local 149 optlen = XFRM_MODE_SKB_CB(skb)->optlen; in xfrm4_beet_encap_add() 150 if (unlikely(optlen)) in xfrm4_beet_encap_add() 151 hdrlen += IPV4_BEET_PHMAXLEN - (optlen & 4); in xfrm4_beet_encap_add() 167 if (unlikely(optlen)) { in xfrm4_beet_encap_add() 168 if (WARN_ON(optlen < 0)) in xfrm4_beet_encap_add() 171 ph->padlen = 4 - (optlen & 4); in xfrm4_beet_encap_add() 172 ph->hdrlen = optlen / 8; in xfrm4_beet_encap_add() 275 int optlen, hdr_len; in xfrm6_beet_encap_add() local 278 optlen = XFRM_MODE_SKB_CB(skb)->optlen; in xfrm6_beet_encap_add() [all …]
|
/Linux-v5.4/include/linux/ |
D | bpf-cgroup.h | 129 int *optlen, char **kernel_optval); 132 int __user *optlen, int max_optlen, 297 #define BPF_CGROUP_RUN_PROG_SETSOCKOPT(sock, level, optname, optval, optlen, \ argument 304 optlen, \ 309 #define BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN(optlen) \ argument 313 get_user(__ret, optlen); \ 317 #define BPF_CGROUP_RUN_PROG_GETSOCKOPT(sock, level, optname, optval, optlen, \ argument 324 optlen, max_optlen, \ 400 #define BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN(optlen) ({ 0; }) argument 402 optlen, max_optlen, retval) ({ retval; }) argument [all …]
|
D | bpfilter.h | 10 unsigned int optlen); 12 int __user *optlen); 19 unsigned int optlen, bool is_set);
|
/Linux-v5.4/tools/testing/selftests/bpf/progs/ |
D | sockopt_sk.c | 73 ctx->optlen = 1; in _getsockopt() 99 ctx->optlen = 4; in _setsockopt() 111 ctx->optlen = 5; in _setsockopt() 128 ctx->optlen = -1; /* BPF has consumed this option, don't call kernel in _setsockopt()
|
/Linux-v5.4/kernel/bpf/ |
D | cgroup.c | 978 int *optlen, char **kernel_optval) in __cgroup_bpf_run_filter_setsockopt() argument 1000 max_optlen = max_t(int, 16, *optlen); in __cgroup_bpf_run_filter_setsockopt() 1006 ctx.optlen = *optlen; in __cgroup_bpf_run_filter_setsockopt() 1008 if (copy_from_user(ctx.optval, optval, *optlen) != 0) { in __cgroup_bpf_run_filter_setsockopt() 1023 if (ctx.optlen == -1) { in __cgroup_bpf_run_filter_setsockopt() 1026 } else if (ctx.optlen > max_optlen || ctx.optlen < -1) { in __cgroup_bpf_run_filter_setsockopt() 1036 *optlen = ctx.optlen; in __cgroup_bpf_run_filter_setsockopt() 1049 int __user *optlen, int max_optlen, in __cgroup_bpf_run_filter_getsockopt() argument 1073 ctx.optlen = max_optlen; in __cgroup_bpf_run_filter_getsockopt() 1083 if (get_user(ctx.optlen, optlen)) { in __cgroup_bpf_run_filter_getsockopt() [all …]
|