aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2019-09-24 17:12:15 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2019-09-24 17:17:37 +0200
commitca2dacfcee92d8cfecff74dd020c2d16202b0d5c (patch)
tree8f703118ddeb1fbaf6275e612d3940cf3be6f887
parentea0917bcba86d354f9c8516a4f114c38d04f890b (diff)
downloadbird-ca2dacfcee92d8cfecff74dd020c2d16202b0d5c.tar.gz
Nest: Fix bug in export table
Exported route may be in modified state, we need to get cached one for rte_same() and rta_clone() to work properly.
-rw-r--r--nest/rt-table.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c
index 318ec2ee..c3ec0314 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -2705,6 +2705,11 @@ rte_update_out(struct channel *c, const net_addr *n, rte *new, rte *old0, int re
{
net = net_get(tab, n);
src = new->attrs->src;
+
+ rte_store_tmp_attrs(new, rte_update_pool, NULL);
+
+ if (!rta_is_cached(new->attrs))
+ new->attrs = rta_lookup(new->attrs);
}
else
{