while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) { 
if (qlen > skb_queue_len(&sk->sk_receive_queue)) qlen = skb_queue_len(&sk->sk_receive_queue);  while (qlen--) { skb = skb_dequeue(&sk->sk_receive_queue); 
static void xfrm_netlink_rcv(struct sock *sk, int len){	do {		struct sk_buff *skb;		down(&xfrm_cfg_sem);		while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL) {			if (xfrm_user_rcv_skb(skb)) {				if (skb->len)					skb_queue_head(&sk->sk_receive_queue,						       skb);				else					kfree_skb(skb);				break;			}			kfree_skb(skb);		}		up(&xfrm_cfg_sem);	} while (xfrm_nl && xfrm_nl->sk_receive_queue.qlen);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2a0a6ebee1d68552152ae8d4aeda91d806995dec/xfrm_user.c/buggy/net/xfrm/xfrm_user.c