nlh = NLMSG_PUT(skb, pid, seq, event, sizeof(*pmsg));  if (pid) nlh->nlmsg_flags |= NLM_F_MULTI;  
nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*pmsg), flags); 
static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev,			struct prefix_info *pinfo, u32 pid, u32 seq, int event){	struct prefixmsg	*pmsg;	struct nlmsghdr 	*nlh;	unsigned char		*b = skb->tail;	struct prefix_cacheinfo	ci;	nlh = NLMSG_PUT(skb, pid, seq, event, sizeof(*pmsg));		if (pid) 		nlh->nlmsg_flags |= NLM_F_MULTI;		pmsg = NLMSG_DATA(nlh);	pmsg->prefix_family = AF_INET6;	pmsg->prefix_ifindex = idev->dev->ifindex;	pmsg->prefix_len = pinfo->prefix_len;	pmsg->prefix_type = pinfo->type;		pmsg->prefix_flags = 0;	if (pinfo->onlink)		pmsg->prefix_flags |= IF_PREFIX_ONLINK;	if (pinfo->autoconf)		pmsg->prefix_flags |= IF_PREFIX_AUTOCONF;	RTA_PUT(skb, PREFIX_ADDRESS, sizeof(pinfo->prefix), &pinfo->prefix);	ci.preferred_time = ntohl(pinfo->prefered);	ci.valid_time = ntohl(pinfo->valid);	RTA_PUT(skb, PREFIX_CACHEINFO, sizeof(ci), &ci);	nlh->nlmsg_len = skb->tail - b;	return skb->len;nlmsg_failure:rtattr_failure:	skb_trim(skb, b - skb->data);	return -1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b6544c0b4cf2bd96195f3cdb7cebfb35090fc557/addrconf.c/buggy/net/ipv6/addrconf.c