From a8a0671d6c653d7ca054eac495780c9f47507a37 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Tue, 16 Oct 2018 15:00:19 -0700 Subject: [PATCH 1/2] fix heap use after free --- libraries/pointers/src/PickManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/pointers/src/PickManager.cpp b/libraries/pointers/src/PickManager.cpp index caa62f3397..3af2ca676a 100644 --- a/libraries/pointers/src/PickManager.cpp +++ b/libraries/pointers/src/PickManager.cpp @@ -41,8 +41,8 @@ void PickManager::removePick(unsigned int uid) { auto type = _typeMap.find(uid); if (type != _typeMap.end()) { _picks[type->second].erase(uid); - _typeMap.erase(uid); _totalPickCounts[type->second]--; + _typeMap.erase(uid); } }); } From 19fd7b5ac7f017ff4d64b2e79a2cd8ab7eea3a23 Mon Sep 17 00:00:00 2001 From: Sam Gondelman Date: Tue, 16 Oct 2018 18:24:14 -0700 Subject: [PATCH 2/2] cr --- libraries/pointers/src/PickManager.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/pointers/src/PickManager.cpp b/libraries/pointers/src/PickManager.cpp index 3af2ca676a..d3326ea8b4 100644 --- a/libraries/pointers/src/PickManager.cpp +++ b/libraries/pointers/src/PickManager.cpp @@ -38,11 +38,11 @@ std::shared_ptr PickManager::findPick(unsigned int uid) const { void PickManager::removePick(unsigned int uid) { withWriteLock([&] { - auto type = _typeMap.find(uid); - if (type != _typeMap.end()) { - _picks[type->second].erase(uid); - _totalPickCounts[type->second]--; - _typeMap.erase(uid); + auto typeIt = _typeMap.find(uid); + if (typeIt != _typeMap.end()) { + _picks[typeIt->second].erase(uid); + _totalPickCounts[typeIt->second]--; + _typeMap.erase(typeIt); } }); }