diff
1 int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf)
...
37 		kfree_skb_partial(frag, headstolen);
+ 		TIPC_SKB_CB(head)->frag_freed = true;
...
61 err:
- 	kfree_skb(*buf);
+ 	if (!head || !TIPC_SKB_CB(head)->frag_freed)
+ 		kfree_skb(*buf);
63 	kfree_skb(*headbuf);
