summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/rde_rib.c
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2006-06-01 22:29:48 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2006-06-01 22:29:48 +0000
commitb7a0159fc6c686edaa6003f905b0b1068d913b97 (patch)
tree2a5245cce68d95861266337eb6954d916478c212 /usr.sbin/bgpd/rde_rib.c
parent530a0a4101a2a1c51bb63e18306153693a6595e6 (diff)
Copy the pftableid in path_copy and correctly do the ref/unref dance in
path_copy and path_put. Diff from Kevin Brintnall, looks good henning@
Diffstat (limited to 'usr.sbin/bgpd/rde_rib.c')
-rw-r--r--usr.sbin/bgpd/rde_rib.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr.sbin/bgpd/rde_rib.c b/usr.sbin/bgpd/rde_rib.c
index 30dc4256c1b..9e6202f4369 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.87 2006/05/28 23:24:15 claudio Exp $ */
+/* $OpenBSD: rde_rib.c,v 1.88 2006/06/01 22:29:47 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org>
@@ -312,6 +312,8 @@ path_copy(struct rde_aspath *asp)
nasp->origin = asp->origin;
nasp->rtlabelid = asp->rtlabelid;
rtlabel_ref(nasp->rtlabelid);
+ nasp->pftableid = asp->pftableid;
+ pftable_ref(nasp->pftableid);
nasp->flags = asp->flags & ~F_ATTR_LINKED;
attr_copy(nasp, asp);
@@ -351,6 +353,7 @@ path_put(struct rde_aspath *asp)
fatalx("path_put: linked object");
rtlabel_unref(asp->rtlabelid);
+ pftable_unref(asp->pftableid);
aspath_put(asp->aspath);
attr_freeall(asp);
rdemem.path_cnt--;