diff options
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r-- | net/tipc/socket.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 922b75ff56d3..a7b3e1a070e4 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
@@ -2151,6 +2151,7 @@ static void tipc_sk_filter_rcv(struct sock *sk, struct sk_buff *skb, | |||
2151 | struct tipc_msg *hdr = buf_msg(skb); | 2151 | struct tipc_msg *hdr = buf_msg(skb); |
2152 | struct net *net = sock_net(sk); | 2152 | struct net *net = sock_net(sk); |
2153 | struct sk_buff_head inputq; | 2153 | struct sk_buff_head inputq; |
2154 | int mtyp = msg_type(hdr); | ||
2154 | int limit, err = TIPC_OK; | 2155 | int limit, err = TIPC_OK; |
2155 | 2156 | ||
2156 | trace_tipc_sk_filter_rcv(sk, skb, TIPC_DUMP_ALL, " "); | 2157 | trace_tipc_sk_filter_rcv(sk, skb, TIPC_DUMP_ALL, " "); |
@@ -2164,7 +2165,7 @@ static void tipc_sk_filter_rcv(struct sock *sk, struct sk_buff *skb, | |||
2164 | if (unlikely(grp)) | 2165 | if (unlikely(grp)) |
2165 | tipc_group_filter_msg(grp, &inputq, xmitq); | 2166 | tipc_group_filter_msg(grp, &inputq, xmitq); |
2166 | 2167 | ||
2167 | if (msg_type(hdr) == TIPC_MCAST_MSG) | 2168 | if (unlikely(!grp) && mtyp == TIPC_MCAST_MSG) |
2168 | tipc_mcast_filter_msg(&tsk->mc_method.deferredq, &inputq); | 2169 | tipc_mcast_filter_msg(&tsk->mc_method.deferredq, &inputq); |
2169 | 2170 | ||
2170 | /* Validate and add to receive buffer if there is space */ | 2171 | /* Validate and add to receive buffer if there is space */ |