BUG/MEDIUM: stream: don't crash on out-of-memory

In case pool_alloc() fails in stream_new(), we try to detach the stream
from the list before it has been added, dereferencing a NULL. In order
to fix it, simply move the LIST_DEL call upwards.

This must be backported to 1.8.
This commit is contained in:
Willy Tarreau 2018-10-15 11:08:55 +02:00
parent dd319a5b1d
commit e5f229e639
1 changed files with 1 additions and 1 deletions

View File

@ -289,10 +289,10 @@ struct stream *stream_new(struct session *sess, enum obj_type *origin)
flt_stream_release(s, 0);
task_free(t);
tasklet_free(s->si[1].wait_event.task);
LIST_DEL(&s->list);
out_fail_alloc_si1:
tasklet_free(s->si[0].wait_event.task);
out_fail_alloc:
LIST_DEL(&s->list);
pool_free(pool_head_stream, s);
return NULL;
}