Message ID | 20180928133321.31121-1-guro@fb.com |
---|---|
State | Accepted, archived |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf] bpf: harden flags check in cgroup_storage_update_elem() | expand |
On 09/28/2018 03:33 PM, Roman Gushchin wrote: > cgroup_storage_update_elem() shouldn't accept any flags > argument values except BPF_ANY and BPF_EXIST to guarantee > the backward compatibility, had a new flag value been added. > > Fixes: de9cbbaadba5 ("bpf: introduce cgroup storage maps") > Signed-off-by: Roman Gushchin <guro@fb.com> > Cc: Alexei Starovoitov <ast@kernel.org> > Cc: Daniel Borkmann <daniel@iogearbox.net> > --- > kernel/bpf/local_storage.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/bpf/local_storage.c b/kernel/bpf/local_storage.c > index f8746e6a9a35..2a7680106320 100644 > --- a/kernel/bpf/local_storage.c > +++ b/kernel/bpf/local_storage.c > @@ -130,7 +130,7 @@ static int cgroup_storage_update_elem(struct bpf_map *map, void *_key, > struct bpf_cgroup_storage *storage; > struct bpf_storage_buffer *new; > > - if (flags & BPF_NOEXIST) > + if (flags != BPF_ANY && flags != BPF_EXIST) > return -EINVAL; > > storage = cgroup_storage_lookup((struct bpf_cgroup_storage_map *)map, > Applied to bpf, thanks!
diff --git a/kernel/bpf/local_storage.c b/kernel/bpf/local_storage.c index f8746e6a9a35..2a7680106320 100644 --- a/kernel/bpf/local_storage.c +++ b/kernel/bpf/local_storage.c @@ -130,7 +130,7 @@ static int cgroup_storage_update_elem(struct bpf_map *map, void *_key, struct bpf_cgroup_storage *storage; struct bpf_storage_buffer *new; - if (flags & BPF_NOEXIST) + if (flags != BPF_ANY && flags != BPF_EXIST) return -EINVAL; storage = cgroup_storage_lookup((struct bpf_cgroup_storage_map *)map,
cgroup_storage_update_elem() shouldn't accept any flags argument values except BPF_ANY and BPF_EXIST to guarantee the backward compatibility, had a new flag value been added. Fixes: de9cbbaadba5 ("bpf: introduce cgroup storage maps") Signed-off-by: Roman Gushchin <guro@fb.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> --- kernel/bpf/local_storage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)