diff --git a/net/core/filter.c b/net/core/filter.c index d1d779c..6fcf577 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -85,6 +85,9 @@ int sk_filter(struct sock *sk, struct sk_buff *skb) if (err) return err; + if (sk->sk_mark && sk->sk_mark != skb->mark) + return -EPERM; + rcu_read_lock_bh(); filter = rcu_dereference(sk->sk_filter); if (filter) {