Lines Matching refs:optlen

1818 				       int *optlen, char **kernel_optval)
1833 max_optlen = max_t(int, 16, *optlen);
1838 ctx.optlen = *optlen;
1841 min(*optlen, max_optlen))) {
1854 if (ctx.optlen == -1) {
1855 /* optlen set to -1, bypass kernel */
1857 } else if (ctx.optlen > max_optlen || ctx.optlen < -1) {
1858 /* optlen is out of bounds */
1859 if (*optlen > PAGE_SIZE && ctx.optlen >= 0) {
1860 pr_info_once("bpf setsockopt: ignoring program buffer with optlen=%d (max_optlen=%d)\n",
1861 ctx.optlen, max_optlen);
1867 /* optlen within bounds, run kernel handler */
1874 /* optlen == 0 from BPF indicates that we should
1877 if (ctx.optlen != 0) {
1878 *optlen = ctx.optlen;
1886 void *p = kmalloc(ctx.optlen, GFP_USER);
1892 memcpy(p, ctx.optval, ctx.optlen);
1909 sockptr_t optlen, int max_optlen,
1924 ctx.optlen = max_optlen;
1932 * into our temporary buffer. Set optlen to the
1936 if (copy_from_sockptr(&ctx.optlen, optlen,
1937 sizeof(ctx.optlen))) {
1942 if (ctx.optlen < 0) {
1946 orig_optlen = ctx.optlen;
1949 min(ctx.optlen, max_optlen))) {
1964 (ctx.optlen > max_optlen || ctx.optlen < 0)) {
1965 if (orig_optlen > PAGE_SIZE && ctx.optlen >= 0) {
1966 pr_info_once("bpf getsockopt: ignoring program buffer with optlen=%d (max_optlen=%d)\n",
1967 ctx.optlen, max_optlen);
1975 if (ctx.optlen != 0) {
1977 copy_to_sockptr(optval, ctx.optval, ctx.optlen)) {
1981 if (copy_to_sockptr(optlen, &ctx.optlen, sizeof(ctx.optlen))) {
1994 int *optlen, int retval)
2001 .optlen = *optlen,
2003 .optval_end = optval + *optlen,
2021 if (ctx.optlen > *optlen)
2026 if (ctx.optlen != 0)
2027 *optlen = ctx.optlen;
2396 case offsetof(struct bpf_sockopt, optlen):
2467 case offsetof(struct bpf_sockopt, optlen):
2469 *insn++ = CG_SOCKOPT_WRITE_FIELD(optlen);
2471 *insn++ = CG_SOCKOPT_READ_FIELD(optlen);