mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Nest: fixed a race-condition between import and export
There was a leaking stack pointer to the global memory. Fixed by making that temporary structure thread local static.
This commit is contained in:
parent
77a4b21365
commit
bc15f0b9c7
@ -1964,10 +1964,8 @@ rte_recalculate(struct rtable_private *table, struct rt_import_hook *c, struct n
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* We need to add a spinlock sentinel to the beginning */
|
/* We need to add a spinlock sentinel to the beginning */
|
||||||
struct rte_storage local_sentinel = {
|
_Thread_local static struct rte_storage local_sentinel = { .flags = REF_OBSOLETE, };
|
||||||
.flags = REF_OBSOLETE,
|
atomic_store_explicit(&local_sentinel.next, old_best_stored, memory_order_release);
|
||||||
.next = old_best_stored,
|
|
||||||
};
|
|
||||||
atomic_store_explicit(&net->routes, &local_sentinel, memory_order_release);
|
atomic_store_explicit(&net->routes, &local_sentinel, memory_order_release);
|
||||||
|
|
||||||
/* Mark also the old route as obsolete. */
|
/* Mark also the old route as obsolete. */
|
||||||
|
Loading…
Reference in New Issue
Block a user