Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP5:GA
libqt5-qtwebengine.3469
0001-Fix-use-after-free-on-Linux-at-shutdown.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Fix-use-after-free-on-Linux-at-shutdown.patch of Package libqt5-qtwebengine.3469
From a626223077ffe7ed4efe8ee15b4dbd16addbce61 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Date: Thu, 18 Feb 2016 13:11:47 +0100 Subject: Fix use-after-free on Linux at shutdown The address tracker has a file-description watcher that references a libevent event that is deleted when the message-loop is deleted. Fixed by deleting the address-tracker before message-loop. Change-Id: I18e98e405138be95b86f6418ac639c297a39a9d0 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> --- chromium/net/base/network_change_notifier_linux.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/3rdparty/chromium/net/base/network_change_notifier_linux.cc b/src/3rdparty/chromium/net/base/network_change_notifier_linux.cc index e1e7de0..44af93c 100644 --- a/src/3rdparty/chromium/net/base/network_change_notifier_linux.cc +++ b/src/3rdparty/chromium/net/base/network_change_notifier_linux.cc @@ -21,11 +21,11 @@ class NetworkChangeNotifierLinux::Thread : public base::Thread { // Plumbing for NetworkChangeNotifier::GetCurrentConnectionType. // Safe to call from any thread. NetworkChangeNotifier::ConnectionType GetCurrentConnectionType() { - return address_tracker_.GetCurrentConnectionType(); + return address_tracker_->GetCurrentConnectionType(); } const internal::AddressTrackerLinux* address_tracker() const { - return &address_tracker_; + return address_tracker_.get(); } protected: @@ -38,7 +38,7 @@ class NetworkChangeNotifierLinux::Thread : public base::Thread { void OnLinkChanged(); scoped_ptr<DnsConfigService> dns_config_service_; // Used to detect online/offline state and IP address changes. - internal::AddressTrackerLinux address_tracker_; + scoped_ptr<internal::AddressTrackerLinux> address_tracker_; NetworkChangeNotifier::ConnectionType last_type_; DISALLOW_COPY_AND_ASSIGN(Thread); @@ -47,13 +47,13 @@ class NetworkChangeNotifierLinux::Thread : public base::Thread { NetworkChangeNotifierLinux::Thread::Thread( const base::hash_set<std::string>& ignored_interfaces) : base::Thread("NetworkChangeNotifier"), - address_tracker_( + address_tracker_(new internal::AddressTrackerLinux( base::Bind(&NetworkChangeNotifierLinux::Thread::OnIPAddressChanged, base::Unretained(this)), base::Bind(&NetworkChangeNotifierLinux::Thread::OnLinkChanged, base::Unretained(this)), base::Bind(base::DoNothing), - ignored_interfaces), + ignored_interfaces)), last_type_(NetworkChangeNotifier::CONNECTION_NONE) { } @@ -62,13 +62,14 @@ NetworkChangeNotifierLinux::Thread::~Thread() { } void NetworkChangeNotifierLinux::Thread::Init() { - address_tracker_.Init(); + address_tracker_->Init(); dns_config_service_ = DnsConfigService::CreateSystemService(); dns_config_service_->WatchConfig( base::Bind(&NetworkChangeNotifier::SetDnsConfig)); } void NetworkChangeNotifierLinux::Thread::CleanUp() { + address_tracker_.reset(); dns_config_service_.reset(); } -- cgit v1.0-4-g1e03
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor