Commit 5e3c8854 authored by Jon Maloy's avatar Jon Maloy Committed by David S. Miller
Browse files

[TIPC] Improved tolerance to promiscuous mode interface

parent fcc18e83
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -98,17 +98,19 @@ static int recv_msg(struct sk_buff *buf, struct net_device *dev,
	u32 size;

	if (likely(eb_ptr->bearer)) {
	       if (likely(!dev->promiscuity) ||
	           !memcmp(buf->mac.raw,dev->dev_addr,ETH_ALEN) ||
	           !memcmp(buf->mac.raw,dev->broadcast,ETH_ALEN)) {
		        size = msg_size((struct tipc_msg *)buf->data);
	                skb_trim(buf, size);
	        	if (likely(buf->len == size)) {
		        	buf->next = NULL;
			        tipc_recv_msg(buf, eb_ptr->bearer);
		} else {
			kfree_skb(buf);
			        return TIPC_OK;
			}
	} else {
		kfree_skb(buf);
		}
	}
	kfree_skb(buf);
	return TIPC_OK;
}