summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_attr.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c
index bb21fe19..97497821 100644
--- a/bgpd/bgp_attr.c
+++ b/bgpd/bgp_attr.c
@@ -652,30 +652,31 @@ bgp_attr_unintern_sub (struct attr *attr)
/* Free bgp attribute and aspath. */
void
-bgp_attr_unintern (struct attr **attr)
+bgp_attr_unintern (struct attr **pattr)
{
+ struct attr *attr = *pattr;
struct attr *ret;
struct attr tmp;
/* Decrement attribute reference. */
- (*attr)->refcnt--;
+ attr->refcnt--;
- tmp = *(*attr);
+ tmp = *attr;
- if ((*attr)->extra)
+ if (attr->extra)
{
tmp.extra = bgp_attr_extra_new ();
- memcpy (tmp.extra, (*attr)->extra, sizeof (struct attr_extra));
+ memcpy (tmp.extra, attr->extra, sizeof (struct attr_extra));
}
/* If reference becomes zero then free attribute object. */
- if ((*attr)->refcnt == 0)
- {
- ret = hash_release (attrhash, *attr);
+ if (attr->refcnt == 0)
+ {
+ ret = hash_release (attrhash, attr);
assert (ret != NULL);
- bgp_attr_extra_free (*attr);
- XFREE (MTYPE_ATTR, *attr);
- *attr = NULL;
+ bgp_attr_extra_free (attr);
+ XFREE (MTYPE_ATTR, attr);
+ *pattr = NULL;
}
bgp_attr_unintern_sub (&tmp);