mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-13 00:20:06 +00:00
tipc: fix bug in bundled buffer reception
In commit ec8a2e5621db2da24badb3969eda7fd359e1869f ("tipc: same receive code path for connection protocol and data messages") we omitted the the possiblilty that an arriving message extracted from a bundle buffer may be a multicast message. Such messages need to be to be delivered to the socket via a separate function, tipc_sk_mcast_rcv(). As a result, small multicast messages arriving as members of a bundle buffer will be silently dropped. This commit corrects the error by considering this case in the function tipc_link_bundle_rcv(). Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
870c315138
commit
643566d4b4
@ -1924,7 +1924,12 @@ void tipc_link_bundle_rcv(struct sk_buff *buf)
|
||||
}
|
||||
omsg = buf_msg(obuf);
|
||||
pos += align(msg_size(omsg));
|
||||
if (msg_isdata(omsg) || (msg_user(omsg) == CONN_MANAGER)) {
|
||||
if (msg_isdata(omsg)) {
|
||||
if (unlikely(msg_type(omsg) == TIPC_MCAST_MSG))
|
||||
tipc_sk_mcast_rcv(obuf);
|
||||
else
|
||||
tipc_sk_rcv(obuf);
|
||||
} else if (msg_user(omsg) == CONN_MANAGER) {
|
||||
tipc_sk_rcv(obuf);
|
||||
} else if (msg_user(omsg) == NAME_DISTRIBUTOR) {
|
||||
tipc_named_rcv(obuf);
|
||||
|
Loading…
x
Reference in New Issue
Block a user