2005-05-19 Paul Jakma <paul@dishone.st>

	* bgp_fsm.c: (bgp_stop) use sockunion_free, not XFREE..
	* bgp_network.c: (bgp_getsockname) ditto
	* bgp_routemap.c: (route_match_peer) ditto, als use a ret value and
	  remove one sockunion_free.
	* bgpd.c: (peer_delete) ditto
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index 060c68c..a9de457 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -124,19 +124,19 @@
       su2 = sockunion_str2su ("0.0.0.0");
       if ( sockunion_same (su, su2) )
         {
+          int ret;
           if ( CHECK_FLAG (peer->rmap_type, PEER_RMAP_TYPE_NETWORK) ||
                CHECK_FLAG (peer->rmap_type, PEER_RMAP_TYPE_REDISTRIBUTE) ||
                CHECK_FLAG (peer->rmap_type, PEER_RMAP_TYPE_DEFAULT))
-            {
-              XFREE (MTYPE_SOCKUNION, su2);
-
-              return RMAP_MATCH;
-            }
+            ret = RMAP_MATCH;
           else
-            return RMAP_NOMATCH;
+            ret = RMAP_NOMATCH;
+          
+          sockunion_free (su2);
+          return ret;
         }
-      XFREE (MTYPE_SOCKUNION, su2);
-
+      sockunion_free (su2);
+      
       if (! CHECK_FLAG (peer->sflags, PEER_STATUS_GROUP))
         {
           if (sockunion_same (su, &peer->su))