From: Daniel Borkmann <[email protected]>
Date: Fri, 4 May 2018 16:27:53 +0200
> If bpf_map_precharge_memlock() did not fail, then we set err to zero.
> However, any subsequent failure from either alloc_percpu() or the
> bpf_map_area_alloc() will return ERR_PTR(0) which in find_and_alloc_map()
> will cause NULL pointer deref.
>
> In devmap we have the convention that we return -EINVAL on page count
> overflow, so keep the same logic here and just set err to -ENOMEM
> after successful bpf_map_precharge_memlock().
>
> Fixes: fbfc504a24f5 ("bpf: introduce new bpf AF_XDP map type
> BPF_MAP_TYPE_XSKMAP")
> Signed-off-by: Daniel Borkmann <[email protected]>
Acked-by: David S. Miller <[email protected]>