mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-17 22:23:45 -04:00
bpf: Use kvmalloc for map keys in syscalls
Same as previous patch but for the keys. memdup_bpfptr is renamed to kvmemdup_bpfptr (and converted to kvmalloc). Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Song Liu <songliubraving@fb.com> Link: https://lore.kernel.org/bpf/20210818235216.1159202-2-sdf@google.com
This commit is contained in:
committed by
Daniel Borkmann
parent
f0dce1d9b7
commit
44779a4b85
@@ -62,9 +62,17 @@ static inline int copy_to_bpfptr_offset(bpfptr_t dst, size_t offset,
|
||||
return copy_to_sockptr_offset((sockptr_t) dst, offset, src, size);
|
||||
}
|
||||
|
||||
static inline void *memdup_bpfptr(bpfptr_t src, size_t len)
|
||||
static inline void *kvmemdup_bpfptr(bpfptr_t src, size_t len)
|
||||
{
|
||||
return memdup_sockptr((sockptr_t) src, len);
|
||||
void *p = kvmalloc(len, GFP_USER | __GFP_NOWARN);
|
||||
|
||||
if (!p)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (copy_from_bpfptr(p, src, len)) {
|
||||
kvfree(p);
|
||||
return ERR_PTR(-EFAULT);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
static inline long strncpy_from_bpfptr(char *dst, bpfptr_t src, size_t count)
|
||||
|
||||
Reference in New Issue
Block a user