2004-10-31 Paul Jakma <paul@dishone.st>

	* ospf_packet.c: (ospf_ls_upd_packet_new) Format for size_t should
          be ld.
	* ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of
	  THREAD_ARG to store an integer, but it should at least use same
          same type to retrieve the value. Assert value is sane.
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 8fd6f82..d174337 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -5,6 +5,9 @@
 	  ospf_write_frags.
 	  (ospf_ls_upd_packet_new) print size in debug output when too large
 	  packet is encountered.
+	* ospf_zebra.c: (ospf_distribute_list_update_timer) Ugly misuse of
+	  THREAD_ARG to store an integer, but it should at least use same
+          same type to retrieve the value. Assert value is sane.
 
 2004-10-22 Paul Jakma <paul@dishone.st>
 
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index de66bcb..2664b4e 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -3246,7 +3246,7 @@
   if (size > OSPF_MAX_PACKET_SIZE)
     {
       zlog_warn ("ospf_ls_upd_packet_new: oversized LSA id:%s too big,"
-                 " %d bytes, packet size %d, dropping it completely."
+                 " %d bytes, packet size %ld, dropping it completely."
                  " OSPF routing is broken!",
                  inet_ntoa (lsa->data->id), ntohs (lsa->data->length),
                  size);
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 331c27c..646c8ed 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -929,10 +929,12 @@
   struct external_info *ei;
   struct route_table *rt;
   struct ospf_lsa *lsa;
-  u_char type;
+  int type;
   struct ospf *ospf;
 
   type = (int) THREAD_ARG (thread);
+  assert (type < ZEBRA_ROUTE_MAX);
+  
   rt = EXTERNAL_INFO (type);
 
   ospf = ospf_lookup ();