nghttpx: Fix heap-use-after-free on initialization failure
This commit is contained in:
parent
33c580ebbf
commit
579fb478b5
|
@ -411,13 +411,6 @@ int worker_process_event_loop(WorkerProcessConfig *wpconf) {
|
||||||
|
|
||||||
auto gen = util::make_mt19937();
|
auto gen = util::make_mt19937();
|
||||||
|
|
||||||
auto conn_handler = std::make_unique<ConnectionHandler>(loop, gen);
|
|
||||||
|
|
||||||
for (auto &addr : config->conn.listener.addrs) {
|
|
||||||
conn_handler->add_acceptor(
|
|
||||||
std::make_unique<AcceptHandler>(&addr, conn_handler.get()));
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef HAVE_NEVERBLEED
|
#ifdef HAVE_NEVERBLEED
|
||||||
std::array<char, NEVERBLEED_ERRBUF_SIZE> nb_errbuf;
|
std::array<char, NEVERBLEED_ERRBUF_SIZE> nb_errbuf;
|
||||||
auto nb = std::make_unique<neverbleed_t>();
|
auto nb = std::make_unique<neverbleed_t>();
|
||||||
|
@ -428,8 +421,6 @@ int worker_process_event_loop(WorkerProcessConfig *wpconf) {
|
||||||
|
|
||||||
LOG(NOTICE) << "neverbleed process [" << nb->daemon_pid << "] spawned";
|
LOG(NOTICE) << "neverbleed process [" << nb->daemon_pid << "] spawned";
|
||||||
|
|
||||||
conn_handler->set_neverbleed(nb.get());
|
|
||||||
|
|
||||||
ev_child nb_childev;
|
ev_child nb_childev;
|
||||||
|
|
||||||
ev_child_init(&nb_childev, nb_child_cb, nb->daemon_pid, 0);
|
ev_child_init(&nb_childev, nb_child_cb, nb->daemon_pid, 0);
|
||||||
|
@ -437,6 +428,17 @@ int worker_process_event_loop(WorkerProcessConfig *wpconf) {
|
||||||
ev_child_start(loop, &nb_childev);
|
ev_child_start(loop, &nb_childev);
|
||||||
#endif // HAVE_NEVERBLEED
|
#endif // HAVE_NEVERBLEED
|
||||||
|
|
||||||
|
auto conn_handler = std::make_unique<ConnectionHandler>(loop, gen);
|
||||||
|
|
||||||
|
#ifdef HAVE_NEVERBLEED
|
||||||
|
conn_handler->set_neverbleed(nb.get());
|
||||||
|
#endif // HAVE_NEVERBLEED
|
||||||
|
|
||||||
|
for (auto &addr : config->conn.listener.addrs) {
|
||||||
|
conn_handler->add_acceptor(
|
||||||
|
std::make_unique<AcceptHandler>(&addr, conn_handler.get()));
|
||||||
|
}
|
||||||
|
|
||||||
MemchunkPool mcpool;
|
MemchunkPool mcpool;
|
||||||
|
|
||||||
ev_timer renew_ticket_key_timer;
|
ev_timer renew_ticket_key_timer;
|
||||||
|
|
Loading…
Reference in New Issue