diff options
| author | Paul Jakma <paul@quagga.net> | 2011-07-29 18:16:25 +0100 | 
|---|---|---|
| committer | Paul Jakma <paul@quagga.net> | 2011-07-29 18:16:25 +0100 | 
| commit | 036a6e6cf63a1046ab260d090719b305069288eb (patch) | |
| tree | 638b920464ce82b188e32013f768d6f5d7b1a6dd /bgpd/bgp_advertise.c | |
| parent | 8dd1a8daae0b15065d54c46f82d44d21aa7a2320 (diff) | |
| parent | b881c7074bb698aeb1b099175b325734fc6e44d2 (diff) | |
Merge branch 'attr-errors'
Contains BGP fixes:
- set extcommunity crash: tihs patch tries to make the refcounting more robust
  but does not fully solve the problem, sadly.
- BGP attribute error handling: Little testing.
Diffstat (limited to 'bgpd/bgp_advertise.c')
| -rw-r--r-- | bgpd/bgp_advertise.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/bgpd/bgp_advertise.c b/bgpd/bgp_advertise.c index 87eb7ac7..666218fa 100644 --- a/bgpd/bgp_advertise.c +++ b/bgpd/bgp_advertise.c @@ -140,13 +140,13 @@ bgp_advertise_unintern (struct hash *hash, struct bgp_advertise_attr *baa)      baa->refcnt--;    if (baa->refcnt && baa->attr) -    bgp_attr_unintern (baa->attr); +    bgp_attr_unintern (&baa->attr);    else      {        if (baa->attr)  	{  	  hash_release (hash, baa); -	  bgp_attr_unintern (baa->attr); +	  bgp_attr_unintern (&baa->attr);  	}        baa_free (baa);      } @@ -319,7 +319,7 @@ bgp_adj_out_remove (struct bgp_node *rn, struct bgp_adj_out *adj,  		    struct peer *peer, afi_t afi, safi_t safi)  {    if (adj->attr) -    bgp_attr_unintern (adj->attr); +    bgp_attr_unintern (&adj->attr);    if (adj->adv)      bgp_advertise_clean (peer, adj, afi, safi); @@ -339,7 +339,7 @@ bgp_adj_in_set (struct bgp_node *rn, struct peer *peer, struct attr *attr)  	{  	  if (adj->attr != attr)  	    { -	      bgp_attr_unintern (adj->attr); +	      bgp_attr_unintern (&adj->attr);  	      adj->attr = bgp_attr_intern (attr);  	    }  	  return; @@ -355,7 +355,7 @@ bgp_adj_in_set (struct bgp_node *rn, struct peer *peer, struct attr *attr)  void  bgp_adj_in_remove (struct bgp_node *rn, struct bgp_adj_in *bai)  { -  bgp_attr_unintern (bai->attr); +  bgp_attr_unintern (&bai->attr);    BGP_ADJ_IN_DEL (rn, bai);    peer_unlock (bai->peer); /* adj_in peer reference */    XFREE (MTYPE_BGP_ADJ_IN, bai);  | 
