lkml.org 
[lkml]   [2019]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 090/135] bpf: sock recvbuff must be limited by rmem_max in bpf_setsockopt()
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit c9e4576743eeda8d24dedc164d65b78877f9a98c ]

    When sock recvbuff is set by bpf_setsockopt(), the value must by
    limited by rmem_max. It is the same with sendbuff.

    Fixes: 8c4b4c7e9ff0 ("bpf: Add setsockopt helper function to bpf")
    Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Acked-by: Lawrence Brakmo <brakmo@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/core/filter.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/net/core/filter.c b/net/core/filter.c
    index 41ede90fc28f..61396648381e 100644
    --- a/net/core/filter.c
    +++ b/net/core/filter.c
    @@ -3081,10 +3081,12 @@ BPF_CALL_5(bpf_setsockopt, struct bpf_sock_ops_kern *, bpf_sock,
    /* Only some socketops are supported */
    switch (optname) {
    case SO_RCVBUF:
    + val = min_t(u32, val, sysctl_rmem_max);
    sk->sk_userlocks |= SOCK_RCVBUF_LOCK;
    sk->sk_rcvbuf = max_t(int, val * 2, SOCK_MIN_RCVBUF);
    break;
    case SO_SNDBUF:
    + val = min_t(u32, val, sysctl_wmem_max);
    sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
    sk->sk_sndbuf = max_t(int, val * 2, SOCK_MIN_SNDBUF);
    break;
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-03-12 18:26    [W:4.130 / U:1.936 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site