Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Issue 1251593007: Add support for Linux memory mapping stream and remove ELF header usage (Closed)

Created:
5 years, 5 months ago by liuandrew
Modified:
5 years, 4 months ago
Reviewers:
srutherford, ahonig, ivanpe
CC:
google-breakpad-dev_googlegroups.com
Visibility:
Public.

Description

Add support for Linux memory mapping stream and remove ELF header usage when checking exploitability rating. Linux minidumps do not support MD_MEMORY_INFO_LIST_STREAM, meaning the processor cannot retrieve its memory mappings. However, it has its own stream, MD_LINUX_MAPS, which contains memory mappings specific to Linux (it contains the contents of /proc/self/maps). This CL allows the minidump to gather information from the memory mappings for Linux minidumps. In addition, exploitability rating for Linux dumps now use memory mappings instead of checking the ELF headers of binaries. The basis for the change is that checking the ELF headers requires the minidumps to store the memory from the ELF headers, while the memory mapping data is already present, meaning the size of a minidump will be unchanged. As a result, of removing ELF header analysis, two unit tests have been removed. Arguably, the cases that those unit tests check do not merit a high exploitability rating and do not warrant a solid conclusion that was given earlier. R=ivanpe@chromium.org Committed: https://code.google.com/p/google-breakpad/source/detail?r=1476

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 29

Patch Set 4 : #

Total comments: 8

Patch Set 5 : #

Total comments: 1

Patch Set 6 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+885 lines, -214 lines) Patch
M Makefile.am View 1 2 3 11 chunks +31 lines, -3 lines 0 comments Download
M Makefile.in View 1 2 3 37 chunks +190 lines, -4 lines 0 comments Download
M src/google_breakpad/processor/minidump.h View 1 2 3 4 6 chunks +101 lines, -2 lines 0 comments Download
A src/google_breakpad/processor/proc_maps_linux.h View 1 2 3 4 1 chunk +57 lines, -0 lines 0 comments Download
M src/processor/exploitability_linux.h View 1 2 3 2 chunks +0 lines, -51 lines 0 comments Download
M src/processor/exploitability_linux.cc View 1 2 3 3 chunks +10 lines, -150 lines 0 comments Download
M src/processor/exploitability_unittest.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/processor/minidump.cc View 1 2 3 4 chunks +143 lines, -0 lines 0 comments Download
A src/processor/proc_maps_linux.cc View 1 2 3 4 5 1 chunk +103 lines, -0 lines 0 comments Download
A src/processor/proc_maps_linux_unittest.cc View 1 2 3 4 1 chunk +250 lines, -0 lines 0 comments Download
D src/processor/testdata/linux_in_module_outside_executable_part.dmp View 1 Binary file 0 comments Download
D src/processor/testdata/linux_inside_elf_header.dmp View 1 Binary file 0 comments Download

Messages

Total messages: 15 (1 generated)
liuandrew
5 years, 5 months ago (2015-07-22 17:34:46 UTC) #2
ivanpe
https://codereview.chromium.org/1251593007/diff/40001/src/google_breakpad/processor/minidump.h File src/google_breakpad/processor/minidump.h (right): https://codereview.chromium.org/1251593007/diff/40001/src/google_breakpad/processor/minidump.h#newcode893 src/google_breakpad/processor/minidump.h:893: explicit MinidumpLinuxMaps(Minidump *minidump); Please, document who should own the ...
5 years, 5 months ago (2015-07-23 01:17:13 UTC) #3
liuandrew
How do I reuse the Chromium code? Do I just copy the relevant files over ...
5 years, 5 months ago (2015-07-23 16:14:50 UTC) #4
ivanpe
On 2015/07/23 16:14:50, liuandrew wrote: > How do I reuse the Chromium code? Do I ...
5 years, 5 months ago (2015-07-23 17:35:46 UTC) #5
liuandrew
On 2015/07/23 17:35:46, ivanpe wrote: > On 2015/07/23 16:14:50, liuandrew wrote: > > How do ...
5 years, 5 months ago (2015-07-23 18:19:47 UTC) #6
ivanpe
On 2015/07/23 18:19:47, liuandrew wrote: > On 2015/07/23 17:35:46, ivanpe wrote: > > On 2015/07/23 ...
5 years, 5 months ago (2015-07-23 18:31:18 UTC) #7
liuandrew
Uploaded patch set 4. Changes include: - stealing the Chromium code to parse proc/<pid>/maps - ...
5 years, 5 months ago (2015-07-24 23:25:36 UTC) #8
liuandrew
Also, I stole the /proc/<pid>/maps unittest from Chromium as well. And I will need to ...
5 years, 5 months ago (2015-07-24 23:29:45 UTC) #9
liuandrew
Google3 BUILD file has been successfully modified; the Google CL now mirrors this patchset.
5 years, 4 months ago (2015-07-27 18:08:48 UTC) #10
ivanpe
Some minor nits. https://codereview.chromium.org/1251593007/diff/40001/src/google_breakpad/processor/minidump.h File src/google_breakpad/processor/minidump.h (right): https://codereview.chromium.org/1251593007/diff/40001/src/google_breakpad/processor/minidump.h#newcode913 src/google_breakpad/processor/minidump.h:913: }; On 2015/07/24 23:25:35, liuandrew wrote: ...
5 years, 4 months ago (2015-07-27 18:12:42 UTC) #11
liuandrew
Uploaded patch set 5. Changes include: - putting proc_maps_linux into google_breakpad's namespace - disallow_copy_and_assign - ...
5 years, 4 months ago (2015-07-27 23:09:26 UTC) #12
ivanpe
LGTM https://codereview.chromium.org/1251593007/diff/80001/src/processor/proc_maps_linux.cc File src/processor/proc_maps_linux.cc (right): https://codereview.chromium.org/1251593007/diff/80001/src/processor/proc_maps_linux.cc#newcode28 src/processor/proc_maps_linux.cc:28: std::vector<google_breakpad::MappedMemoryRegion> Do you really need to specify the ...
5 years, 4 months ago (2015-07-28 00:18:58 UTC) #13
liuandrew
Uploaded patch set 6. Changes include: - removing unnecessary google_breakpad prefix in proc_maps_linux.cc
5 years, 4 months ago (2015-07-28 00:44:03 UTC) #14
liuandrew
5 years, 4 months ago (2015-07-28 00:53:54 UTC) #15
Message was sent while issue was closed.
Committed patchset #6 (id:100001) manually as r1476 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698