From 8f9e6c132d27a0ecb3b94f7b6f5905a771ecba74 Mon Sep 17 00:00:00 2001 From: Aleksei Bavshin Date: Sat, 17 Aug 2019 18:11:22 -0700 Subject: [PATCH] fix(network): stack-use-after-return found by address sanitizer Fixes compilation with clang. --- src/modules/network.cpp | 5 +++-- src/modules/sni/host.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/modules/network.cpp b/src/modules/network.cpp index a1e55e3..6ba607b 100644 --- a/src/modules/network.cpp +++ b/src/modules/network.cpp @@ -201,8 +201,9 @@ void waybar::modules::Network::worker() { } thread_timer_.sleep_for(interval_); }; - std::array events{}; - thread_ = [this, &events] { + thread_ = [this] { + std::array events{}; + int ec = epoll_wait(efd_, events.data(), EPOLL_MAX, -1); if (ec > 0) { for (auto i = 0; i < ec; i++) { diff --git a/src/modules/sni/host.cpp b/src/modules/sni/host.cpp index 015f756..204821b 100644 --- a/src/modules/sni/host.cpp +++ b/src/modules/sni/host.cpp @@ -130,7 +130,8 @@ std::tuple Host::getBusNameAndObjectPath(const std::st } void Host::addRegisteredItem(std::string service) { - auto [bus_name, object_path] = getBusNameAndObjectPath(service); + std::string bus_name, object_path; + std::tie(bus_name, object_path) = getBusNameAndObjectPath(service); auto it = std::find_if(items_.begin(), items_.end(), [&bus_name, &object_path](const auto& item) { return bus_name == item->bus_name && object_path == item->object_path; });