nlh = NLMSG_PUT(skb, pid, seq, event, sizeof(*rtm)); 
nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*rtm), flags); 
static int dn_fib_dump_info(struct sk_buff *skb, u32 pid, u32 seq, int event,                        u8 tb_id, u8 type, u8 scope, void *dst, int dst_len,                        struct dn_fib_info *fi){        struct rtmsg *rtm;        struct nlmsghdr *nlh;        unsigned char *b = skb->tail;        nlh = NLMSG_PUT(skb, pid, seq, event, sizeof(*rtm));        rtm = NLMSG_DATA(nlh);        rtm->rtm_family = AF_DECnet;        rtm->rtm_dst_len = dst_len;        rtm->rtm_src_len = 0;        rtm->rtm_tos = 0;        rtm->rtm_table = tb_id;        rtm->rtm_flags = fi->fib_flags;        rtm->rtm_scope = scope;	rtm->rtm_type  = type;        if (rtm->rtm_dst_len)                RTA_PUT(skb, RTA_DST, 2, dst);        rtm->rtm_protocol = fi->fib_protocol;        if (fi->fib_priority)                RTA_PUT(skb, RTA_PRIORITY, 4, &fi->fib_priority);	if (rtnetlink_put_metrics(skb, fi->fib_metrics) < 0)		goto rtattr_failure;        if (fi->fib_nhs == 1) {                if (fi->fib_nh->nh_gw)                        RTA_PUT(skb, RTA_GATEWAY, 2, &fi->fib_nh->nh_gw);                if (fi->fib_nh->nh_oif)                        RTA_PUT(skb, RTA_OIF, sizeof(int), &fi->fib_nh->nh_oif);        }        if (fi->fib_nhs > 1) {                struct rtnexthop *nhp;                struct rtattr *mp_head;                if (skb_tailroom(skb) <= RTA_SPACE(0))                        goto rtattr_failure;                mp_head = (struct rtattr *)skb_put(skb, RTA_SPACE(0));                for_nexthops(fi) {                        if (skb_tailroom(skb) < RTA_ALIGN(RTA_ALIGN(sizeof(*nhp)) + 4))                                goto rtattr_failure;                        nhp = (struct rtnexthop *)skb_put(skb, RTA_ALIGN(sizeof(*nhp)));                        nhp->rtnh_flags = nh->nh_flags & 0xFF;                        nhp->rtnh_hops = nh->nh_weight - 1;                        nhp->rtnh_ifindex = nh->nh_oif;                        if (nh->nh_gw)                                RTA_PUT(skb, RTA_GATEWAY, 2, &nh->nh_gw);                        nhp->rtnh_len = skb->tail - (unsigned char *)nhp;                } endfor_nexthops(fi);                mp_head->rta_type = RTA_MULTIPATH;                mp_head->rta_len = skb->tail - (u8*)mp_head;        }        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/dn_table.c/buggy/net/decnet/dn_table.c