mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +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 */
|
||||
struct rte_storage local_sentinel = {
|
||||
.flags = REF_OBSOLETE,
|
||||
.next = old_best_stored,
|
||||
};
|
||||
_Thread_local static struct rte_storage local_sentinel = { .flags = REF_OBSOLETE, };
|
||||
atomic_store_explicit(&local_sentinel.next, old_best_stored, memory_order_release);
|
||||
atomic_store_explicit(&net->routes, &local_sentinel, memory_order_release);
|
||||
|
||||
/* Mark also the old route as obsolete. */
|
||||
|
Loading…
Reference in New Issue
Block a user