diff options
author | Joshua Peraza <jperaza@chromium.org> | 2017-02-07 12:12:53 -0800 |
---|---|---|
committer | Joshua Peraza <jperaza@chromium.org> | 2017-02-07 22:41:43 +0000 |
commit | 64c2eda38a108039c42c1636b0e77b135da830ff (patch) | |
tree | 1729f3f33536d12a00472c1c0cd8b63963d92a74 /src/processor | |
parent | Address post-submit review comments related to CL #430050 (diff) | |
download | breakpad-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.cc | 7 | ||||
-rw-r--r-- | src/processor/process_state.cc | 1 |
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; } |