From: Andrei Pavel Date: Mon, 28 Jun 2021 06:25:02 +0000 (+0300) Subject: [#1948] extend lifetime of IOService in IOSignalSet X-Git-Tag: Kea-1.9.9~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=debb7763856253e453acc1f0b379b1e4bbe72dde;p=thirdparty%2Fkea.git [#1948] extend lifetime of IOService in IOSignalSet to avoid heap-use-after-free --- diff --git a/src/lib/asiolink/io_service_signal.cc b/src/lib/asiolink/io_service_signal.cc index 95fc8a6be9..ea1010359d 100644 --- a/src/lib/asiolink/io_service_signal.cc +++ b/src/lib/asiolink/io_service_signal.cc @@ -46,6 +46,9 @@ public: void remove(int signum); private: + /// @brief Extends the lifetime of IOService to avoid heap-use-after-free. + IOServicePtr io_service_; + /// @brief the ASIO signal set. boost::asio::signal_set signal_set_; @@ -61,7 +64,9 @@ private: IOSignalSetImpl::IOSignalSetImpl(IOServicePtr io_service, IOSignalHandler handler) - : signal_set_(io_service->get_io_service()), handler_(handler) { + : io_service_(io_service), + signal_set_(io_service_->get_io_service()), + handler_(handler) { } void