mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Clear memory allocated by ralloc().
This also fixes bug that timer->recurrent was not cleared in tm_new() and unexpected recurrence of startup timer in BGP confused state machine and caused crash.
This commit is contained in:
parent
05198c12f4
commit
daeeb8e982
@ -63,10 +63,6 @@ event *
|
||||
ev_new(pool *p)
|
||||
{
|
||||
event *e = ralloc(p, &ev_class);
|
||||
|
||||
e->hook = NULL;
|
||||
e->data = NULL;
|
||||
e->n.next = NULL;
|
||||
return e;
|
||||
}
|
||||
|
||||
|
@ -64,13 +64,9 @@ linpool
|
||||
*lp_new(pool *p, unsigned blk)
|
||||
{
|
||||
linpool *m = ralloc(p, &lp_class);
|
||||
m->ptr = m->end = NULL;
|
||||
m->first = m->current = NULL;
|
||||
m->plast = &m->first;
|
||||
m->first_large = NULL;
|
||||
m->chunk_size = blk;
|
||||
m->threshold = 3*blk/4;
|
||||
m->total = m->total_large = 0;
|
||||
return m;
|
||||
}
|
||||
|
||||
|
@ -183,13 +183,14 @@ rdump(void *res)
|
||||
*
|
||||
* This function is called by the resource classes to create a new
|
||||
* resource of the specified class and link it to the given pool.
|
||||
* Size of the resource structure is taken from the @size field
|
||||
* of the &resclass.
|
||||
* Allocated memory is zeroed. Size of the resource structure is taken
|
||||
* from the @size field of the &resclass.
|
||||
*/
|
||||
void *
|
||||
ralloc(pool *p, struct resclass *c)
|
||||
{
|
||||
resource *r = xmalloc(c->size);
|
||||
bzero(r, c->size);
|
||||
|
||||
r->class = c;
|
||||
add_tail(&p->inside, &r->n);
|
||||
|
@ -205,10 +205,6 @@ timer *
|
||||
tm_new(pool *p)
|
||||
{
|
||||
timer *t = ralloc(p, &tm_class);
|
||||
t->hook = NULL;
|
||||
t->data = NULL;
|
||||
t->randomize = 0;
|
||||
t->expires = 0;
|
||||
return t;
|
||||
}
|
||||
|
||||
@ -595,22 +591,9 @@ sk_new(pool *p)
|
||||
{
|
||||
sock *s = ralloc(p, &sk_class);
|
||||
s->pool = p;
|
||||
s->data = NULL;
|
||||
s->saddr = s->daddr = IPA_NONE;
|
||||
s->sport = s->dport = 0;
|
||||
// s->saddr = s->daddr = IPA_NONE;
|
||||
s->tos = s->ttl = -1;
|
||||
s->flags = 0;
|
||||
s->iface = NULL;
|
||||
s->rbuf = NULL;
|
||||
s->rx_hook = NULL;
|
||||
s->rbsize = 0;
|
||||
s->tbuf = NULL;
|
||||
s->tx_hook = NULL;
|
||||
s->tbsize = 0;
|
||||
s->err_hook = NULL;
|
||||
s->fd = -1;
|
||||
s->rbuf_alloc = s->tbuf_alloc = NULL;
|
||||
s->password = NULL;
|
||||
return s;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user