diff options
Diffstat (limited to 'bgpd/bgp_routemap.c')
| -rw-r--r-- | bgpd/bgp_routemap.c | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index 060c68c0..a9de457d 100644 --- a/bgpd/bgp_routemap.c +++ b/bgpd/bgp_routemap.c @@ -124,19 +124,19 @@ route_match_peer (void *rule, struct prefix *prefix, route_map_object_t type,        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))  | 
