diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 919d0d7..5d1ee25 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -606,9 +606,17 @@ static void rtnetlink_rcv(struct sock *sk, int len)
 		while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) {
 			int ret;
 			struct ve_struct *old_env;
+			struct user_beancounter *old_ub, *ub;
+
+			ub = skb_bc(skb)->ub;
+			while (ub && ub->parent)
+				ub = ub->parent;
+			WARN_ON(ub && ub->ub_uid != VE_OWNER_SKB(skb)->veid);
 
 			old_env = set_exec_env(VE_OWNER_SKB(skb));
+			old_ub = set_exec_ub(skb_bc(skb)->ub);
 			ret = rtnetlink_rcv_skb(skb);
+			(void)set_exec_ub(old_ub);
 			(void)set_exec_env(old_env);
 			if (ret) {
 				if (skb->len)
-- 1.6.6.1 
