]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge branch 'master' of git://1984.lsi.us.es/nf-next
authorDavid S. Miller <davem@davemloft.net>
Thu, 13 Sep 2012 18:24:31 +0000 (14:24 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Sep 2012 18:24:31 +0000 (14:24 -0400)
Pablo Neira Ayuso says:

====================
The following patchset contains four Netfilter updates, mostly targeting
to fix issues added with IPv6 NAT, and one little IPVS update for net-next:

* Remove unneeded conditional free of skb in nfnetlink_queue, from
  Wei Yongjun.

* One semantic path from coccinelle detected the use of list_del +
  INIT_LIST_HEAD, instead of list_del_init, again from Wei Yongjun.

* Fix out-of-bound memory access in the NAT address selection, from
  Florian Westphal. This was introduced with the IPv6 NAT patches.

* Two fixes for crashes that were introduced in the recently merged
  IPv6 NAT support, from myself.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
1  2 
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nfnetlink_queue_core.c

index 0f924bf19c2b05ba1fe6d6acb45f03e8a400397d,37b38d0791cd0b7557a740f65aa9ce0774ae501c..7e7198b51c068a7ea10446af4d390a9e6e2044f4
@@@ -539,8 -539,7 +539,7 @@@ static int ip_vs_rs_unhash(struct ip_vs
         * Remove it from the rs_table table.
         */
        if (!list_empty(&dest->d_list)) {
-               list_del(&dest->d_list);
-               INIT_LIST_HEAD(&dest->d_list);
+               list_del_init(&dest->d_list);
        }
  
        return 1;
@@@ -2939,7 -2938,7 +2938,7 @@@ static int ip_vs_genl_dump_service(stru
  {
        void *hdr;
  
 -      hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq,
 +      hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq,
                          &ip_vs_genl_family, NLM_F_MULTI,
                          IPVS_CMD_NEW_SERVICE);
        if (!hdr)
@@@ -3128,7 -3127,7 +3127,7 @@@ static int ip_vs_genl_dump_dest(struct 
  {
        void *hdr;
  
 -      hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq,
 +      hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq,
                          &ip_vs_genl_family, NLM_F_MULTI,
                          IPVS_CMD_NEW_DEST);
        if (!hdr)
@@@ -3257,7 -3256,7 +3256,7 @@@ static int ip_vs_genl_dump_daemon(struc
                                  struct netlink_callback *cb)
  {
        void *hdr;
 -      hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq,
 +      hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq,
                          &ip_vs_genl_family, NLM_F_MULTI,
                          IPVS_CMD_NEW_DAEMON);
        if (!hdr)
index 59770039b82556711ff1218bbcdb18034adef3b5,090d267ee605c5de567f6c8d847e81bf36dc28cd..2dcd080b8c4f9eebdc65b410adc8be3845915c69
@@@ -418,16 -418,16 +418,16 @@@ nla_put_failure
  }
  
  static int
 -ctnetlink_fill_info(struct sk_buff *skb, u32 pid, u32 seq, u32 type,
 +ctnetlink_fill_info(struct sk_buff *skb, u32 portid, u32 seq, u32 type,
                    struct nf_conn *ct)
  {
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
        struct nlattr *nest_parms;
 -      unsigned int flags = pid ? NLM_F_MULTI : 0, event;
 +      unsigned int flags = portid ? NLM_F_MULTI : 0, event;
  
        event = (NFNL_SUBSYS_CTNETLINK << 8 | IPCTNL_MSG_CT_NEW);
 -      nlh = nlmsg_put(skb, pid, seq, event, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
@@@ -604,7 -604,7 +604,7 @@@ ctnetlink_conntrack_event(unsigned int 
                goto errout;
  
        type |= NFNL_SUBSYS_CTNETLINK << 8;
 -      nlh = nlmsg_put(skb, item->pid, 0, type, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, item->portid, 0, type, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
        rcu_read_unlock();
  
        nlmsg_end(skb, nlh);
 -      err = nfnetlink_send(skb, net, item->pid, group, item->report,
 +      err = nfnetlink_send(skb, net, item->portid, group, item->report,
                             GFP_ATOMIC);
        if (err == -ENOBUFS || err == -EAGAIN)
                return -ENOBUFS;
@@@ -757,7 -757,7 +757,7 @@@ restart
  #endif
                        rcu_read_lock();
                        res =
 -                      ctnetlink_fill_info(skb, NETLINK_CB(cb->skb).pid,
 +                      ctnetlink_fill_info(skb, NETLINK_CB(cb->skb).portid,
                                            cb->nlh->nlmsg_seq,
                                            NFNL_MSG_TYPE(cb->nlh->nlmsg_type),
                                            ct);
@@@ -961,7 -961,7 +961,7 @@@ ctnetlink_del_conntrack(struct sock *ct
        else {
                /* Flush the whole table */
                nf_conntrack_flush_report(net,
 -                                       NETLINK_CB(skb).pid,
 +                                       NETLINK_CB(skb).portid,
                                         nlmsg_report(nlh));
                return 0;
        }
  
        if (del_timer(&ct->timeout)) {
                if (nf_conntrack_event_report(IPCT_DESTROY, ct,
 -                                            NETLINK_CB(skb).pid,
 +                                            NETLINK_CB(skb).portid,
                                              nlmsg_report(nlh)) < 0) {
                        nf_ct_delete_from_lists(ct);
                        /* we failed to report the event, try later */
@@@ -1069,14 -1069,14 +1069,14 @@@ ctnetlink_get_conntrack(struct sock *ct
        }
  
        rcu_read_lock();
 -      err = ctnetlink_fill_info(skb2, NETLINK_CB(skb).pid, nlh->nlmsg_seq,
 +      err = ctnetlink_fill_info(skb2, NETLINK_CB(skb).portid, nlh->nlmsg_seq,
                                  NFNL_MSG_TYPE(nlh->nlmsg_type), ct);
        rcu_read_unlock();
        nf_ct_put(ct);
        if (err <= 0)
                goto free;
  
 -      err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).pid, MSG_DONTWAIT);
 +      err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).portid, MSG_DONTWAIT);
        if (err < 0)
                goto out;
  
@@@ -1120,16 -1120,13 +1120,13 @@@ ctnetlink_parse_nat_setup(struct nf_con
        if (err == -EAGAIN) {
  #ifdef CONFIG_MODULES
                rcu_read_unlock();
-               spin_unlock_bh(&nf_conntrack_lock);
                nfnl_unlock();
                if (request_module("nf-nat-%u", nf_ct_l3num(ct)) < 0) {
                        nfnl_lock();
-                       spin_lock_bh(&nf_conntrack_lock);
                        rcu_read_lock();
                        return -EOPNOTSUPP;
                }
                nfnl_lock();
-               spin_lock_bh(&nf_conntrack_lock);
                rcu_read_lock();
  #else
                err = -EOPNOTSUPP;
@@@ -1616,7 -1613,7 +1613,7 @@@ ctnetlink_new_conntrack(struct sock *ct
                                                      (1 << IPCT_PROTOINFO) |
                                                      (1 << IPCT_NATSEQADJ) |
                                                      (1 << IPCT_MARK) | events,
 -                                                    ct, NETLINK_CB(skb).pid,
 +                                                    ct, NETLINK_CB(skb).portid,
                                                      nlmsg_report(nlh));
                        nf_ct_put(ct);
                }
                                                      (1 << IPCT_PROTOINFO) |
                                                      (1 << IPCT_NATSEQADJ) |
                                                      (1 << IPCT_MARK),
 -                                                    ct, NETLINK_CB(skb).pid,
 +                                                    ct, NETLINK_CB(skb).portid,
                                                      nlmsg_report(nlh));
                }
        }
  }
  
  static int
 -ctnetlink_ct_stat_cpu_fill_info(struct sk_buff *skb, u32 pid, u32 seq,
 +ctnetlink_ct_stat_cpu_fill_info(struct sk_buff *skb, u32 portid, u32 seq,
                                __u16 cpu, const struct ip_conntrack_stat *st)
  {
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
 -      unsigned int flags = pid ? NLM_F_MULTI : 0, event;
 +      unsigned int flags = portid ? NLM_F_MULTI : 0, event;
  
        event = (NFNL_SUBSYS_CTNETLINK << 8 | IPCTNL_MSG_CT_GET_STATS_CPU);
 -      nlh = nlmsg_put(skb, pid, seq, event, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
@@@ -1708,7 -1705,7 +1705,7 @@@ ctnetlink_ct_stat_cpu_dump(struct sk_bu
  
                st = per_cpu_ptr(net->ct.stat, cpu);
                if (ctnetlink_ct_stat_cpu_fill_info(skb,
 -                                                  NETLINK_CB(cb->skb).pid,
 +                                                  NETLINK_CB(cb->skb).portid,
                                                    cb->nlh->nlmsg_seq,
                                                    cpu, st) < 0)
                                break;
@@@ -1734,16 -1731,16 +1731,16 @@@ ctnetlink_stat_ct_cpu(struct sock *ctnl
  }
  
  static int
 -ctnetlink_stat_ct_fill_info(struct sk_buff *skb, u32 pid, u32 seq, u32 type,
 +ctnetlink_stat_ct_fill_info(struct sk_buff *skb, u32 portid, u32 seq, u32 type,
                            struct net *net)
  {
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
 -      unsigned int flags = pid ? NLM_F_MULTI : 0, event;
 +      unsigned int flags = portid ? NLM_F_MULTI : 0, event;
        unsigned int nr_conntracks = atomic_read(&net->ct.count);
  
        event = (NFNL_SUBSYS_CTNETLINK << 8 | IPCTNL_MSG_CT_GET_STATS);
 -      nlh = nlmsg_put(skb, pid, seq, event, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
@@@ -1776,14 -1773,14 +1773,14 @@@ ctnetlink_stat_ct(struct sock *ctnl, st
        if (skb2 == NULL)
                return -ENOMEM;
  
 -      err = ctnetlink_stat_ct_fill_info(skb2, NETLINK_CB(skb).pid,
 +      err = ctnetlink_stat_ct_fill_info(skb2, NETLINK_CB(skb).portid,
                                          nlh->nlmsg_seq,
                                          NFNL_MSG_TYPE(nlh->nlmsg_type),
                                          sock_net(skb->sk));
        if (err <= 0)
                goto free;
  
 -      err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).pid, MSG_DONTWAIT);
 +      err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).portid, MSG_DONTWAIT);
        if (err < 0)
                goto out;
  
@@@ -2073,15 -2070,15 +2070,15 @@@ nla_put_failure
  }
  
  static int
 -ctnetlink_exp_fill_info(struct sk_buff *skb, u32 pid, u32 seq,
 +ctnetlink_exp_fill_info(struct sk_buff *skb, u32 portid, u32 seq,
                        int event, const struct nf_conntrack_expect *exp)
  {
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
 -      unsigned int flags = pid ? NLM_F_MULTI : 0;
 +      unsigned int flags = portid ? NLM_F_MULTI : 0;
  
        event |= NFNL_SUBSYS_CTNETLINK_EXP << 8;
 -      nlh = nlmsg_put(skb, pid, seq, event, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
@@@ -2132,7 -2129,7 +2129,7 @@@ ctnetlink_expect_event(unsigned int eve
                goto errout;
  
        type |= NFNL_SUBSYS_CTNETLINK_EXP << 8;
 -      nlh = nlmsg_put(skb, item->pid, 0, type, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, item->portid, 0, type, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
        rcu_read_unlock();
  
        nlmsg_end(skb, nlh);
 -      nfnetlink_send(skb, net, item->pid, group, item->report, GFP_ATOMIC);
 +      nfnetlink_send(skb, net, item->portid, group, item->report, GFP_ATOMIC);
        return 0;
  
  nla_put_failure:
@@@ -2190,7 -2187,7 +2187,7 @@@ restart
                                cb->args[1] = 0;
                        }
                        if (ctnetlink_exp_fill_info(skb,
 -                                                  NETLINK_CB(cb->skb).pid,
 +                                                  NETLINK_CB(cb->skb).portid,
                                                    cb->nlh->nlmsg_seq,
                                                    IPCTNL_MSG_EXP_NEW,
                                                    exp) < 0) {
@@@ -2283,14 -2280,14 +2280,14 @@@ ctnetlink_get_expect(struct sock *ctnl
        }
  
        rcu_read_lock();
 -      err = ctnetlink_exp_fill_info(skb2, NETLINK_CB(skb).pid,
 +      err = ctnetlink_exp_fill_info(skb2, NETLINK_CB(skb).portid,
                                      nlh->nlmsg_seq, IPCTNL_MSG_EXP_NEW, exp);
        rcu_read_unlock();
        nf_ct_expect_put(exp);
        if (err <= 0)
                goto free;
  
 -      err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).pid, MSG_DONTWAIT);
 +      err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).portid, MSG_DONTWAIT);
        if (err < 0)
                goto out;
  
@@@ -2344,7 -2341,7 +2341,7 @@@ ctnetlink_del_expect(struct sock *ctnl
                /* after list removal, usage count == 1 */
                spin_lock_bh(&nf_conntrack_lock);
                if (del_timer(&exp->timeout)) {
 -                      nf_ct_unlink_expect_report(exp, NETLINK_CB(skb).pid,
 +                      nf_ct_unlink_expect_report(exp, NETLINK_CB(skb).portid,
                                                   nlmsg_report(nlh));
                        nf_ct_expect_put(exp);
                }
                                if (!strcmp(m_help->helper->name, name) &&
                                    del_timer(&exp->timeout)) {
                                        nf_ct_unlink_expect_report(exp,
 -                                                      NETLINK_CB(skb).pid,
 +                                                      NETLINK_CB(skb).portid,
                                                        nlmsg_report(nlh));
                                        nf_ct_expect_put(exp);
                                }
                                                  hnode) {
                                if (del_timer(&exp->timeout)) {
                                        nf_ct_unlink_expect_report(exp,
 -                                                      NETLINK_CB(skb).pid,
 +                                                      NETLINK_CB(skb).portid,
                                                        nlmsg_report(nlh));
                                        nf_ct_expect_put(exp);
                                }
@@@ -2447,7 -2444,7 +2444,7 @@@ static in
  ctnetlink_create_expect(struct net *net, u16 zone,
                        const struct nlattr * const cda[],
                        u_int8_t u3,
 -                      u32 pid, int report)
 +                      u32 portid, int report)
  {
        struct nf_conntrack_tuple tuple, mask, master_tuple;
        struct nf_conntrack_tuple_hash *h = NULL;
                if (err < 0)
                        goto err_out;
        }
 -      err = nf_ct_expect_related_report(exp, pid, report);
 +      err = nf_ct_expect_related_report(exp, portid, report);
  err_out:
        nf_ct_expect_put(exp);
  out:
@@@ -2603,7 -2600,7 +2600,7 @@@ ctnetlink_new_expect(struct sock *ctnl
                if (nlh->nlmsg_flags & NLM_F_CREATE) {
                        err = ctnetlink_create_expect(net, zone, cda,
                                                      u3,
 -                                                    NETLINK_CB(skb).pid,
 +                                                    NETLINK_CB(skb).portid,
                                                      nlmsg_report(nlh));
                }
                return err;
  }
  
  static int
 -ctnetlink_exp_stat_fill_info(struct sk_buff *skb, u32 pid, u32 seq, int cpu,
 +ctnetlink_exp_stat_fill_info(struct sk_buff *skb, u32 portid, u32 seq, int cpu,
                             const struct ip_conntrack_stat *st)
  {
        struct nlmsghdr *nlh;
        struct nfgenmsg *nfmsg;
 -      unsigned int flags = pid ? NLM_F_MULTI : 0, event;
 +      unsigned int flags = portid ? NLM_F_MULTI : 0, event;
  
        event = (NFNL_SUBSYS_CTNETLINK << 8 | IPCTNL_MSG_EXP_GET_STATS_CPU);
 -      nlh = nlmsg_put(skb, pid, seq, event, sizeof(*nfmsg), flags);
 +      nlh = nlmsg_put(skb, portid, seq, event, sizeof(*nfmsg), flags);
        if (nlh == NULL)
                goto nlmsg_failure;
  
@@@ -2665,7 -2662,7 +2662,7 @@@ ctnetlink_exp_stat_cpu_dump(struct sk_b
                        continue;
  
                st = per_cpu_ptr(net->ct.stat, cpu);
 -              if (ctnetlink_exp_stat_fill_info(skb, NETLINK_CB(cb->skb).pid,
 +              if (ctnetlink_exp_stat_fill_info(skb, NETLINK_CB(cb->skb).portid,
                                                 cb->nlh->nlmsg_seq,
                                                 cpu, st) < 0)
                        break;
index b8d9995b76a8762c70bb2ec0a67c846095d16fdb,5c2d78d3a4d829d819c95699e90cbc3fba894851..43de3a03ee766796fca787aec67b2efa1cc3d614
@@@ -44,7 -44,7 +44,7 @@@ struct nfqnl_instance 
        struct hlist_node hlist;                /* global list of queues */
        struct rcu_head rcu;
  
 -      int peer_pid;
 +      int peer_portid;
        unsigned int queue_maxlen;
        unsigned int copy_range;
        unsigned int queue_dropped;
@@@ -92,7 -92,7 +92,7 @@@ instance_lookup(u_int16_t queue_num
  }
  
  static struct nfqnl_instance *
 -instance_create(u_int16_t queue_num, int pid)
 +instance_create(u_int16_t queue_num, int portid)
  {
        struct nfqnl_instance *inst;
        unsigned int h;
        }
  
        inst->queue_num = queue_num;
 -      inst->peer_pid = pid;
 +      inst->peer_portid = portid;
        inst->queue_maxlen = NFQNL_QMAX_DEFAULT;
        inst->copy_range = 0xfffff;
        inst->copy_mode = NFQNL_COPY_NONE;
@@@ -406,8 -406,7 +406,7 @@@ nfqnl_build_packet_message(struct nfqnl
        return skb;
  
  nla_put_failure:
-       if (skb)
-               kfree_skb(skb);
+       kfree_skb(skb);
        net_err_ratelimited("nf_queue: error creating packet message\n");
        return NULL;
  }
@@@ -440,7 -439,7 +439,7 @@@ nfqnl_enqueue_packet(struct nf_queue_en
        }
        spin_lock_bh(&queue->lock);
  
 -      if (!queue->peer_pid) {
 +      if (!queue->peer_portid) {
                err = -EINVAL;
                goto err_out_free_nskb;
        }
        *packet_id_ptr = htonl(entry->id);
  
        /* nfnetlink_unicast will either free the nskb or add it to a socket */
 -      err = nfnetlink_unicast(nskb, &init_net, queue->peer_pid, MSG_DONTWAIT);
 +      err = nfnetlink_unicast(nskb, &init_net, queue->peer_portid, MSG_DONTWAIT);
        if (err < 0) {
                queue->queue_user_dropped++;
                goto err_out_unlock;
@@@ -616,7 -615,7 +615,7 @@@ nfqnl_rcv_nl_event(struct notifier_bloc
        if (event == NETLINK_URELEASE && n->protocol == NETLINK_NETFILTER) {
                int i;
  
 -              /* destroy all instances for this pid */
 +              /* destroy all instances for this portid */
                spin_lock(&instances_lock);
                for (i = 0; i < INSTANCE_BUCKETS; i++) {
                        struct hlist_node *tmp, *t2;
  
                        hlist_for_each_entry_safe(inst, tmp, t2, head, hlist) {
                                if ((n->net == &init_net) &&
 -                                  (n->pid == inst->peer_pid))
 +                                  (n->portid == inst->peer_portid))
                                        __instance_destroy(inst);
                        }
                }
@@@ -650,7 -649,7 +649,7 @@@ static const struct nla_policy nfqa_ver
        [NFQA_MARK]             = { .type = NLA_U32 },
  };
  
 -static struct nfqnl_instance *verdict_instance_lookup(u16 queue_num, int nlpid)
 +static struct nfqnl_instance *verdict_instance_lookup(u16 queue_num, int nlportid)
  {
        struct nfqnl_instance *queue;
  
        if (!queue)
                return ERR_PTR(-ENODEV);
  
 -      if (queue->peer_pid != nlpid)
 +      if (queue->peer_portid != nlportid)
                return ERR_PTR(-EPERM);
  
        return queue;
@@@ -698,7 -697,7 +697,7 @@@ nfqnl_recv_verdict_batch(struct sock *c
        LIST_HEAD(batch_list);
        u16 queue_num = ntohs(nfmsg->res_id);
  
 -      queue = verdict_instance_lookup(queue_num, NETLINK_CB(skb).pid);
 +      queue = verdict_instance_lookup(queue_num, NETLINK_CB(skb).portid);
        if (IS_ERR(queue))
                return PTR_ERR(queue);
  
@@@ -749,7 -748,7 +748,7 @@@ nfqnl_recv_verdict(struct sock *ctnl, s
        queue = instance_lookup(queue_num);
        if (!queue)
  
 -      queue = verdict_instance_lookup(queue_num, NETLINK_CB(skb).pid);
 +      queue = verdict_instance_lookup(queue_num, NETLINK_CB(skb).portid);
        if (IS_ERR(queue))
                return PTR_ERR(queue);
  
@@@ -832,7 -831,7 +831,7 @@@ nfqnl_recv_config(struct sock *ctnl, st
  
        rcu_read_lock();
        queue = instance_lookup(queue_num);
 -      if (queue && queue->peer_pid != NETLINK_CB(skb).pid) {
 +      if (queue && queue->peer_portid != NETLINK_CB(skb).portid) {
                ret = -EPERM;
                goto err_out_unlock;
        }
                                ret = -EBUSY;
                                goto err_out_unlock;
                        }
 -                      queue = instance_create(queue_num, NETLINK_CB(skb).pid);
 +                      queue = instance_create(queue_num, NETLINK_CB(skb).portid);
                        if (IS_ERR(queue)) {
                                ret = PTR_ERR(queue);
                                goto err_out_unlock;
@@@ -1016,7 -1015,7 +1015,7 @@@ static int seq_show(struct seq_file *s
  
        return seq_printf(s, "%5d %6d %5d %1d %5d %5d %5d %8d %2d\n",
                          inst->queue_num,
 -                        inst->peer_pid, inst->queue_total,
 +                        inst->peer_portid, inst->queue_total,
                          inst->copy_mode, inst->copy_range,
                          inst->queue_dropped, inst->queue_user_dropped,
                          inst->id_sequence, 1);