mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 16:48:43 +00:00
Linpool: Fix lp_restore()
When lp_save() is called on an empty linpool, then some allocation is done, then lp_restore() is called, the linpool is restored but the used chunks are inaccessible. Fix it.
This commit is contained in:
parent
9e44ace392
commit
335409248e
@ -240,9 +240,9 @@ lp_restore(linpool *m, lp_state *p)
|
||||
struct lp_chunk *c;
|
||||
|
||||
/* Move ptr to the saved pos and free all newer large chunks */
|
||||
m->current = c = p->current;
|
||||
m->ptr = p->ptr;
|
||||
m->end = c ? c->data + LP_DATA_SIZE : NULL;
|
||||
m->current = c = p->current ?: m->first;
|
||||
m->ptr = p->ptr ?: (c ? c->data : NULL);
|
||||
m->end = c ? (c->data + LP_DATA_SIZE) : NULL;
|
||||
m->total_large = p->total_large;
|
||||
|
||||
while ((c = m->first_large) && (c != p->large))
|
||||
|
Loading…
Reference in New Issue
Block a user