|
@@ -48,6 +48,7 @@
|
|
|
#include <linux/tipc_netlink.h>
|
|
#include <linux/tipc_netlink.h>
|
|
|
#include "core.h"
|
|
#include "core.h"
|
|
|
#include "bearer.h"
|
|
#include "bearer.h"
|
|
|
|
|
+#include "msg.h"
|
|
|
|
|
|
|
|
/* IANA assigned UDP port */
|
|
/* IANA assigned UDP port */
|
|
|
#define UDP_PORT_DEFAULT 6118
|
|
#define UDP_PORT_DEFAULT 6118
|
|
@@ -222,6 +223,10 @@ static int tipc_udp_recv(struct sock *sk, struct sk_buff *skb)
|
|
|
{
|
|
{
|
|
|
struct udp_bearer *ub;
|
|
struct udp_bearer *ub;
|
|
|
struct tipc_bearer *b;
|
|
struct tipc_bearer *b;
|
|
|
|
|
+ int usr = msg_user(buf_msg(skb));
|
|
|
|
|
+
|
|
|
|
|
+ if ((usr == LINK_PROTOCOL) || (usr == NAME_DISTRIBUTOR))
|
|
|
|
|
+ skb_linearize(skb);
|
|
|
|
|
|
|
|
ub = rcu_dereference_sk_user_data(sk);
|
|
ub = rcu_dereference_sk_user_data(sk);
|
|
|
if (!ub) {
|
|
if (!ub) {
|