diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index dd419d2862043c95001df58853d2799cc135d5dc..8d9bbba345a4166b133af4f3c985a2cba4dcc363 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -1475,6 +1475,12 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock, goto out_free; } + if (sk_filter(other, skb) < 0) { + /* Toss the packet but do not return any error to the sender */ + err = len; + goto out_free; + } + unix_state_lock(other); err = -EPERM; if (!unix_may_send(sk, other))