Skip to content

Commit f4924f2

Browse files
Peter Oskolkovborkmann
authored andcommitted
bpf: bpf_setsockopt: reset sock dst on SO_MARK changes
In sock_setsockopt() (net/core/sock.h), when SO_MARK option is used to change sk_mark, sk_dst_reset(sk) is called. The same should be done in bpf_setsockopt(). Fixes: 8c4b4c7 ("bpf: Add setsockopt helper function to bpf") Reported-by: Maciej Żenczykowski <maze@google.com> Signed-off-by: Peter Oskolkov <posk@google.com> Acked-by: Martin KaFai Lau <kafai@fb.com> Reviewed-by: Maciej Żenczykowski <maze@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
1 parent c61c276 commit f4924f2

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

net/core/filter.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4132,7 +4132,10 @@ BPF_CALL_5(bpf_setsockopt, struct bpf_sock_ops_kern *, bpf_sock,
41324132
sk->sk_rcvlowat = val ? : 1;
41334133
break;
41344134
case SO_MARK:
4135-
sk->sk_mark = val;
4135+
if (sk->sk_mark != val) {
4136+
sk->sk_mark = val;
4137+
sk_dst_reset(sk);
4138+
}
41364139
break;
41374140
default:
41384141
ret = -EINVAL;

0 commit comments

Comments
 (0)