summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/rde_rib.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bgpd/rde_rib.c')
-rw-r--r--usr.sbin/bgpd/rde_rib.c5
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;