diff options
Diffstat (limited to 'usr.sbin/bgpd/rde_rib.c')
-rw-r--r-- | usr.sbin/bgpd/rde_rib.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/bgpd/rde_rib.c b/usr.sbin/bgpd/rde_rib.c index d90dcb63590..9195432e080 100644 --- a/usr.sbin/bgpd/rde_rib.c +++ b/usr.sbin/bgpd/rde_rib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde_rib.c,v 1.40 2004/03/01 16:02:01 claudio Exp $ */ +/* $OpenBSD: rde_rib.c,v 1.41 2004/03/05 22:21:32 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org> @@ -117,6 +117,7 @@ path_update(struct rde_peer *peer, struct attr_flags *attrs, if (attr_compare(&asp->flags, attrs) == 0) { /* path are equal, just add prefix */ pte = prefix_add(asp, prefix, prefixlen); + attr_free(attrs); } else { /* non equal path attributes create new path */ if ((p = prefix_get(asp, prefix, prefixlen)) == NULL) { @@ -159,7 +160,7 @@ path_add(struct rde_peer *peer, struct attr_flags *attr) asp = path_alloc(); - attr_copy(&asp->flags, attr); + attr_move(&asp->flags, attr); path_link(asp, peer); return asp; |