/* Returns a new message buffer containing an embedded message. The encapsulating message itself is left unchanged.  */
static struct sk_buff* buf_extract(struct sk_buff *skb, u32 from_pos)
/* Returns a new message buffer containing an embedded message. The encapsulating message itself is left unchanged.  */
static struct sk_buff* buf_extract(struct sk_buff *skb, u32 from_pos)
{
	struct tipc_msg *msg = (struct tipc_msg *)(skb->data + from_pos);
	u32 size = msg_size(msg);
	struct sk_buff *eb;
	eb = buf_acquire(size);
	if (eb)
		skb_copy_to_linear_data(eb, msg, size);
	return eb;
}