mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 00:20:32 +00:00
bpf, sockmap: Fix map type error in sock_map_del_link
commit7e96ec0e66
upstream. sock_map_del_link() operates on both SOCKMAP and SOCKHASH, although both types have member named "progs", the offset of "progs" member in these two types is different, so "progs" should be accessed with the real map type. Fixes:604326b41a
("bpf, sockmap: convert to generic sk_msg interface") Signed-off-by: Xu Kuohai <xukuohai@huawei.com> Reviewed-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/r/20230804073740.194770-2-xukuohai@huaweicloud.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a09c258cfa
commit
20d53895d5
1 changed files with 5 additions and 5 deletions
|
@ -148,13 +148,13 @@ static void sock_map_del_link(struct sock *sk,
|
|||
list_for_each_entry_safe(link, tmp, &psock->link, list) {
|
||||
if (link->link_raw == link_raw) {
|
||||
struct bpf_map *map = link->map;
|
||||
struct bpf_stab *stab = container_of(map, struct bpf_stab,
|
||||
map);
|
||||
if (psock->saved_data_ready && stab->progs.stream_parser)
|
||||
struct sk_psock_progs *progs = sock_map_progs(map);
|
||||
|
||||
if (psock->saved_data_ready && progs->stream_parser)
|
||||
strp_stop = true;
|
||||
if (psock->saved_data_ready && stab->progs.stream_verdict)
|
||||
if (psock->saved_data_ready && progs->stream_verdict)
|
||||
verdict_stop = true;
|
||||
if (psock->saved_data_ready && stab->progs.skb_verdict)
|
||||
if (psock->saved_data_ready && progs->skb_verdict)
|
||||
verdict_stop = true;
|
||||
list_del(&link->list);
|
||||
sk_psock_free_link(link);
|
||||
|
|
Loading…
Reference in a new issue