Commit 4b7f14aa authored by Jan Maria Matejka's avatar Jan Maria Matejka Committed by Maria Matejka
Browse files

Nest: Don't make tmp_attr before preexport is called

parent c2d29dd1
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -405,8 +405,6 @@ export_filter_(struct channel *c, rte *rt0, rte **rt_free, linpool *pool, int si
  rt = rt0;
  *rt_free = NULL;

  rte_make_tmp_attrs(&rt, pool);

  v = p->preexport ? p->preexport(p, &rt, pool) : 0;
  if (v < 0)
    {
@@ -425,6 +423,8 @@ export_filter_(struct channel *c, rte *rt0, rte **rt_free, linpool *pool, int si
      goto accept;
    }

  rte_make_tmp_attrs(&rt, pool);

  v = filter && ((filter == FILTER_REJECT) ||
		 (f_run(filter, &rt, pool,
			(silent ? FF_SILENT : 0)) > F_ACCEPT));
@@ -1477,10 +1477,12 @@ rt_examine(rtable *t, net_addr *a, struct proto *p, struct filter *filter)
  rte_update_lock();

  /* Rest is stripped down export_filter() */
  rte_make_tmp_attrs(&rt, rte_update_pool);
  int v = p->preexport ? p->preexport(p, &rt, rte_update_pool) : 0;
  if (v == RIC_PROCESS)
  {
    rte_make_tmp_attrs(&rt, rte_update_pool);
    v = (f_run(filter, &rt, rte_update_pool, FF_SILENT) <= F_ACCEPT);
  }

  /* Discard temporary rte */
  if (rt != n->routes)