On Tue, Aug 21, 2018 at 3:02 PM, Daniel Borkmann <[email protected]> wrote: > Currently, it is possible to create a sock hash map with key size > of 0 and have the kernel return a fd back to user space. This is > invalid for hash maps (and kernel also hasn't been tested for zero > key size support in general at this point). Thus, reject such > configuration. > > Fixes: 81110384441a ("bpf: sockmap, add hash map support") > Signed-off-by: Daniel Borkmann <[email protected]> > Acked-by: John Fastabend <[email protected]>
Acked-by: Song Liu <[email protected]> > --- > kernel/bpf/sockmap.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/kernel/bpf/sockmap.c b/kernel/bpf/sockmap.c > index 98e621a..60ceb0e 100644 > --- a/kernel/bpf/sockmap.c > +++ b/kernel/bpf/sockmap.c > @@ -2140,7 +2140,9 @@ static struct bpf_map *sock_hash_alloc(union bpf_attr > *attr) > return ERR_PTR(-EPERM); > > /* check sanity of attributes */ > - if (attr->max_entries == 0 || attr->value_size != 4 || > + if (attr->max_entries == 0 || > + attr->key_size == 0 || > + attr->value_size != 4 || > attr->map_flags & ~SOCK_CREATE_FLAG_MASK) > return ERR_PTR(-EINVAL); > > -- > 2.9.5 >
