]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes type mismatch in OSPF printf statements.
authorOndrej Zajicek <santiago@crfreenet.org>
Sun, 5 Jul 2009 17:01:54 +0000 (19:01 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Sun, 5 Jul 2009 17:01:54 +0000 (19:01 +0200)
Mixing ip_addr and u32 does bad things on Ultrasparc.
Although both have the same size. Fascinating.
It was not catched by compiler because of varargs.

proto/ospf/iface.c
proto/ospf/lsack.c
proto/ospf/ospf.c

index 5162f9f08a1689dd95b1d687508b374ce8e5d261..2239bef90cd3015cf41dbcdcb939398ae6660ee2 100644 (file)
@@ -113,7 +113,7 @@ ospf_iface_chstate(struct ospf_iface *ifa, u8 state)
     {
       OSPF_TRACE(D_EVENTS,
                 "Changing state of virtual link %I from \"%s\" into \"%s\".",
-                ifa->vid, ospf_is[oldstate], ospf_is[state]);
+                ipa_from_u32(ifa->vid), ospf_is[oldstate], ospf_is[state]);
       if (state == OSPF_IS_PTP)
       {
         ifa->ip_sk = ospf_open_ip_socket(ifa);
@@ -586,8 +586,8 @@ ospf_iface_info(struct ospf_iface *ifa)
     strict = "";
   if (ifa->type == OSPF_IT_VLINK)
   {
-    cli_msg(-1015, "Virtual link to %I:", ifa->vid);
-    cli_msg(-1015, "\tTransit area: %I (%u)", ifa->voa->areaid,
+    cli_msg(-1015, "Virtual link to %I:", ipa_from_u32(ifa->vid));
+    cli_msg(-1015, "\tTransit area: %I (%u)", ipa_from_u32(ifa->voa->areaid),
            ifa->voa->areaid);
   }
   else
@@ -595,13 +595,14 @@ ospf_iface_info(struct ospf_iface *ifa)
     cli_msg(-1015, "Interface \"%s\":",
            (ifa->iface ? ifa->iface->name : "(none)"));
     cli_msg(-1015, "\tType: %s %s", ospf_it[ifa->type], strict);
-    cli_msg(-1015, "\tArea: %I (%u)", ifa->oa->areaid, ifa->oa->areaid);
+    cli_msg(-1015, "\tArea: %I (%u)", ipa_from_u32(ifa->oa->areaid), ifa->oa->areaid);
   }
   cli_msg(-1015, "\tState: %s %s", ospf_is[ifa->state],
          ifa->stub ? "(stub)" : "");
   cli_msg(-1015, "\tPriority: %u", ifa->priority);
   cli_msg(-1015, "\tCost: %u", ifa->cost);
   cli_msg(-1015, "\tHello timer: %u", ifa->helloint);
+
   if (ifa->type == OSPF_IT_NBMA)
   {
     cli_msg(-1015, "\tPoll timer: %u", ifa->pollint);
@@ -611,9 +612,9 @@ ospf_iface_info(struct ospf_iface *ifa)
   cli_msg(-1015, "\tRetransmit timer: %u", ifa->rxmtint);
   if ((ifa->type == OSPF_IT_BCAST) || (ifa->type == OSPF_IT_NBMA))
   {
-    cli_msg(-1015, "\tDesigned router (ID): %I", ifa->drid);
+    cli_msg(-1015, "\tDesigned router (ID): %I", ipa_from_u32(ifa->drid));
     cli_msg(-1015, "\tDesigned router (IP): %I", ifa->drip);
-    cli_msg(-1015, "\tBackup designed router (ID): %I", ifa->bdrid);
+    cli_msg(-1015, "\tBackup designed router (ID): %I", ipa_from_u32(ifa->bdrid));
     cli_msg(-1015, "\tBackup designed router (IP): %I", ifa->bdrip);
   }
 }
index 46528257577670888eefd0849fedc9ea79667b87..cc26666cfd11665a7b3f01a27645d7218d20b83f 100644 (file)
@@ -43,7 +43,7 @@ ospf_lsack_enqueue(struct ospf_neighbor *n, struct ospf_lsa_header *h,
   memcpy(&no->lsa, h, sizeof(struct ospf_lsa_header));
   add_tail(&n->ackl[queue], NODE no);
   DBG("Adding (%s) ack for %I, ID: %I, RT: %I, Type: %u\n", s_queue[queue],
-      n->rid, ntohl(h->id), ntohl(h->rt), h->type);
+      ipa_from_u32(n->rid), ipa_from_u32(ntohl(h->id)), ipa_from_u32(ntohl(h->rt)), h->type);
 }
 
 void
@@ -77,8 +77,8 @@ ospf_lsack_send(struct ospf_neighbor *n, int queue)
     no = (struct lsah_n *) HEAD(n->ackl[queue]);
     memcpy(h + i, &no->lsa, sizeof(struct ospf_lsa_header));
     i++;
-    DBG("Iter %u ID: %I, RT: %I, Type: %u\n", i, ntohl((h + i)->id),
-       ntohl((h + i)->rt), (h + i)->type);
+    DBG("Iter %u ID: %I, RT: %I, Type: %u\n", i, ipa_from_u32(ntohl((h + i)->id)),
+       ipa_from_u32(ntohl((h + i)->rt)), (h + i)->type);
     rem_node(NODE no);
     mb_free(no);
     if ((i * sizeof(struct ospf_lsa_header) +
@@ -191,7 +191,7 @@ ospf_lsack_receive(struct ospf_lsack_packet *ps,
     }
 
     DBG("Deleting LS Id: %I RT: %I Type: %u from LS Retl for neighbor %I\n",
-       lsa.id, lsa.rt, lsa.type, n->rid);
+       ipa_from_u32(lsa.id), ipa_from_u32(lsa.rt), lsa.type, ipa_from_u32(n->rid));
     s_rem_node(SNODE en);
     if (en->lsa_body != NULL)
       mb_free(en->lsa_body);
index c9b5f430d20e528ecc39862cd91a5108c7a63978..4a6712801fae58513c6af5de47e26fbfb3a1dfae 100644 (file)
@@ -209,11 +209,11 @@ ospf_dump(struct proto *p)
   {
     OSPF_TRACE(D_EVENTS, "Interface: %s", (ifa->iface ? ifa->iface->name : "(null)"));
     OSPF_TRACE(D_EVENTS, "state: %u", ifa->state);
-    OSPF_TRACE(D_EVENTS, "DR:  %I", ifa->drid);
-    OSPF_TRACE(D_EVENTS, "BDR: %I", ifa->bdrid);
+    OSPF_TRACE(D_EVENTS, "DR:  %I", ipa_from_u32(ifa->drid));
+    OSPF_TRACE(D_EVENTS, "BDR: %I", ipa_from_u32(ifa->bdrid));
     WALK_LIST(n, ifa->neigh_list)
     {
-      OSPF_TRACE(D_EVENTS, "  neighbor %I in state %u", n->rid, n->state);
+      OSPF_TRACE(D_EVENTS, "  neighbor %I in state %u", ipa_from_u32(n->rid), n->state);
     }
   }
 
@@ -310,7 +310,7 @@ schedule_rt_lsa(struct ospf_area *oa)
   struct proto *p = &oa->po->proto;
 
   OSPF_TRACE(D_EVENTS, "Scheduling RT lsa origination for area %I.",
-            oa->areaid);
+            ipa_from_u32(oa->areaid));
   oa->origrt = 1;
 }
 
@@ -953,7 +953,7 @@ ospf_sh(struct proto *p)
 
   WALK_LIST(oa, po->area_list)
   {
-    cli_msg(-1014, "\tArea: %I (%u) %s", oa->areaid, oa->areaid,
+    cli_msg(-1014, "\tArea: %I (%u) %s", ipa_from_u32(oa->areaid), oa->areaid,
            oa->areaid == 0 ? "[BACKBONE]" : "");
     ifano = 0;
     nno = 0;
@@ -1088,7 +1088,7 @@ show_lsa_router(struct top_hash_entry *he)
 
   for (i = 0; i < rt->links; i++)
     if (rr[i].type == LSART_PTP)
-      cli_msg(-1016, "\t\trouter %I metric %u ", rr[i].id, rr[i].metric);
+      cli_msg(-1016, "\t\trouter %I metric %u ", ipa_from_u32(rr[i].id), rr[i].metric);
 
   for (i = 0; i < rt->links; i++)
     if (rr[i].type == LSART_NET)
@@ -1125,10 +1125,10 @@ show_lsa_network(struct top_hash_entry *he)
 
   cli_msg(-1016, "");
   cli_msg(-1016, "\tnetwork %I/%d", ipa_and(ipa_from_u32(lsa->id), ln->netmask), ipa_mklen(ln->netmask));
-  cli_msg(-1016, "\t\tdr %I", lsa->rt);
+  cli_msg(-1016, "\t\tdr %I", ipa_from_u32(lsa->rt));
 
   for (i = 0; i < max; i++)
-    cli_msg(-1016, "\t\trouter %I", rts[i]);
+    cli_msg(-1016, "\t\trouter %I", ipa_from_u32(rts[i]));
 }
 
 static inline void
@@ -1143,7 +1143,7 @@ show_lsa_sum_net(struct top_hash_entry *he)
 static inline void
 show_lsa_sum_rt(struct top_hash_entry *he)
 {
-  cli_msg(-1016, "\t\txrouter %I", he->lsa.id);
+  cli_msg(-1016, "\t\txrouter %I", ipa_from_u32(he->lsa.id));
 }
 
 
@@ -1207,7 +1207,7 @@ ospf_sh_state(struct proto *p, int verbose)
     if (last_area != hea[i]->oa->areaid)
     {
       cli_msg(-1016, "");
-      cli_msg(-1016, "area %I", hea[i]->oa->areaid);
+      cli_msg(-1016, "area %I", ipa_from_u32(hea[i]->oa->areaid));
       last_area = hea[i]->oa->areaid;
       last_rt = 0xFFFFFFFF;
     }
@@ -1215,7 +1215,7 @@ ospf_sh_state(struct proto *p, int verbose)
     if ((hea[i]->lsa.rt != last_rt) && (hea[i]->lsa.type != LSA_T_NET))
     {
       cli_msg(-1016, "");
-      cli_msg(-1016, (hea[i]->lsa.type != LSA_T_EXT) ? "\trouter %I" : "\txrouter %I", hea[i]->lsa.rt);
+      cli_msg(-1016, (hea[i]->lsa.type != LSA_T_EXT) ? "\trouter %I" : "\txrouter %I", ipa_from_u32(hea[i]->lsa.rt));
       last_rt = hea[i]->lsa.rt;
     }