From: Shinwoo Kim Date: Tue, 13 Jul 2021 01:16:49 +0000 (+0900) Subject: Fix use of v variable after it was freed X-Git-Tag: submit/tizen/20210713.013126^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen_7.0;p=profile%2Fcommon%2Fapps%2Fnative%2Faccessibility-setting.git Fix use of v variable after it was freed The v is freed by eldbus_service_interface_unregister() Change-Id: I035a976a2f3d851ac0c3292a2b8975855b57e9f1 --- diff --git a/src/service/DBus.cpp b/src/service/DBus.cpp index 0720693..2a8e343 100644 --- a/src/service/DBus.cpp +++ b/src/service/DBus.cpp @@ -677,9 +677,11 @@ struct DefaultDBusWrapper : public DBusWrapper DBUS_DEBUG("registering interface %p (%d)", v, fallback ? 1 : 0); destructors.push_back([=]() { DBUS_DEBUG("unregistering interface %p", v); + { + std::lock_guard lock(globalEntriesMutex); + globalEntries.erase(v); + } eldbus_service_interface_unregister(v); - std::lock_guard lock(globalEntriesMutex); - globalEntries.erase(v); }); } } @@ -776,4 +778,4 @@ OwnerNameCallbackHandle DBus::registerNameOwnerChangedCallback(DBusWrapper::Conn }; } return o; -} \ No newline at end of file +}