aboutsummaryrefslogtreecommitdiff
path: root/src/processor
diff options
context:
space:
mode:
authorJoshua Peraza <jperaza@chromium.org>2017-02-07 12:12:53 -0800
committerJoshua Peraza <jperaza@chromium.org>2017-02-07 22:41:43 +0000
commit64c2eda38a108039c42c1636b0e77b135da830ff (patch)
tree1729f3f33536d12a00472c1c0cd8b63963d92a74 /src/processor
parentAddress post-submit review comments related to CL #430050 (diff)
downloadbreakpad-64c2eda38a108039c42c1636b0e77b135da830ff.tar.xz
Fixed leak of unloaded module lists.
BUG= Change-Id: I6d03820082f793a2eac3c3c2abd184b4acf66aa4 Reviewed-on: https://chromium-review.googlesource.com/438755 Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
Diffstat (limited to 'src/processor')
-rw-r--r--src/processor/minidump_processor_unittest.cc7
-rw-r--r--src/processor/process_state.cc1
2 files changed, 6 insertions, 2 deletions
diff --git a/src/processor/minidump_processor_unittest.cc b/src/processor/minidump_processor_unittest.cc
index d9d974df..83682a51 100644
--- a/src/processor/minidump_processor_unittest.cc
+++ b/src/processor/minidump_processor_unittest.cc
@@ -84,6 +84,7 @@ class MockMinidumpUnloadedModuleList : public MinidumpUnloadedModuleList {
public:
MockMinidumpUnloadedModuleList() : MinidumpUnloadedModuleList(NULL) {}
+ ~MockMinidumpUnloadedModuleList() {}
MOCK_CONST_METHOD0(Copy, CodeModules*());
MOCK_CONST_METHOD1(GetModuleForAddress,
const MinidumpUnloadedModule*(uint64_t));
@@ -400,11 +401,13 @@ TEST_F(MinidumpProcessorTest, TestUnloadedModules) {
EXPECT_CALL(memory_list, GetMemoryRegionForAddress(_)).
Times(0);
+ MockMinidumpUnloadedModuleList* unloaded_module_list_copy =
+ new MockMinidumpUnloadedModuleList();
EXPECT_CALL(unloaded_module_list, Copy()).
- WillOnce(Return(&unloaded_module_list));
+ WillOnce(Return(unloaded_module_list_copy));
MockMinidumpUnloadedModule unloaded_module;
- EXPECT_CALL(unloaded_module_list, GetModuleForAddress(kExpectedEIP)).
+ EXPECT_CALL(*unloaded_module_list_copy, GetModuleForAddress(kExpectedEIP)).
WillOnce(Return(&unloaded_module));
MinidumpProcessor processor(reinterpret_cast<SymbolSupplier*>(NULL), NULL);
diff --git a/src/processor/process_state.cc b/src/processor/process_state.cc
index 90ae93d7..43c4a4b8 100644
--- a/src/processor/process_state.cc
+++ b/src/processor/process_state.cc
@@ -64,6 +64,7 @@ void ProcessState::Clear() {
modules_with_corrupt_symbols_.clear();
delete modules_;
modules_ = NULL;
+ delete unloaded_modules_;
unloaded_modules_ = NULL;
}