mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-02-27 10:42:58 +00:00
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 .
This commit is contained in:
@@ -110,6 +110,9 @@ void MicrodumpModules::Add(const CodeModule* module) {
|
||||
}
|
||||
}
|
||||
|
||||
void MicrodumpModules::SetEnableModuleShrink(bool is_enabled) {
|
||||
map_.SetEnableShrinkDown(is_enabled);
|
||||
}
|
||||
|
||||
//
|
||||
// MicrodumpContext
|
||||
@@ -262,6 +265,7 @@ Microdump::Microdump(const string& contents)
|
||||
} else if (os_id == "A") {
|
||||
system_info_->os = "Android";
|
||||
system_info_->os_short = "android";
|
||||
modules_->SetEnableModuleShrink(true);
|
||||
}
|
||||
|
||||
// OS line also contains release and version for future use.
|
||||
|
||||
Reference in New Issue
Block a user