From 24f5931c5e0120982c0cbf1896641e3ef2bdd52f Mon Sep 17 00:00:00 2001 From: Ivan Penkov Date: Mon, 20 Jun 2016 11:14:47 -0700 Subject: Server-side workaround to handle overlapping modules. This change is resolving an issue that was caused by the combination of: - Android system libraries being relro packed in N+. - Breakpad dealing with relro packed libraries in a hack way. This is a fix for http://crbug/611824. I also found an use-after-free issue (bug in Minidump::SeekToStreamType). I disallowed the MinidumpStreamInfo copy and assign constructors and the compiler detected another similar issue in Minidump::Print. Then I disabled the copy and assign constructors for most classes in minidump.h (just in case). There are a couple of classes where I couldn't disallow them (since assign is used). This will require a small refactor so I left it out of this CL. R=mark@chromium.org Review URL: https://codereview.chromium.org/2060663002 . --- src/google_breakpad/processor/code_modules.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/google_breakpad/processor/code_modules.h') diff --git a/src/google_breakpad/processor/code_modules.h b/src/google_breakpad/processor/code_modules.h index a38579af..509137cb 100644 --- a/src/google_breakpad/processor/code_modules.h +++ b/src/google_breakpad/processor/code_modules.h @@ -35,7 +35,12 @@ #ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__ #define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__ +#include + +#include + #include "google_breakpad/common/breakpad_types.h" +#include "processor/linked_ptr.h" namespace google_breakpad { @@ -91,6 +96,14 @@ class CodeModules { // returns objects in may differ between a copy and the original CodeModules // object. virtual const CodeModules* Copy() const = 0; + + // Returns a vector of all modules which address ranges needed to be shrunk + // down due to address range conflicts with other modules. + virtual std::vector > + GetShrunkRangeModules() const = 0; + + // Returns true, if module address range shrink is enabled. + virtual bool IsModuleShrinkEnabled() const = 0; }; } // namespace google_breakpad -- cgit v1.2.1