d6eb7fa1b8
When LinuxCoreDumper fails to copy process data from a core file, it fills the return buffer with a repeated sequence of a special marker. However, MinidumpWriter doesn't know about that and may incorrectly interpret the data. In many cases, MinidumpWriter simply copies the gibberish data to the minidump, which isn't too bad. However, the gibberish data may cause MinidumpWriter to behave badly in some other cases. For example, when MinidumpWriter tries to iterate through the linked list of all loaded DSOs via the r_map field of a r_debug struct, if the linked list is filed with the special marker, the code keeps iterating through the same address. This CL addresses the issue by having LinuxCoreDumper::CopyFromProcess() returns a Boolean value to indicate if the expected data is found from the core file. MinidumpWriter can then decide how to handle that. BUG=chromium:453484 TEST=Run core2md with the test data attached to chromium:453484. R=mark@chromium.org Review URL: https://breakpad.appspot.com/4724002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1420 4c0a9323-5329-0410-9bdc-e9ce6186880e |
||
---|---|---|
android | ||
autotools | ||
m4 | ||
src | ||
.gitignore | ||
aclocal.m4 | ||
AUTHORS | ||
breakpad-client.pc.in | ||
breakpad.pc.in | ||
ChangeLog | ||
codereview.settings | ||
configure | ||
configure.ac | ||
DEPS | ||
INSTALL | ||
LICENSE | ||
Makefile.am | ||
Makefile.in | ||
NEWS | ||
README | ||
README.ANDROID |
Breakpad is a set of client and server components which implement a crash-reporting system. ----- Getting started in 32-bit mode (from trunk) Configure: CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 ./configure Build: make Test: make check Install: make install If you need to reconfigure your build be sure to run "make distclean" first. ----- To request change review: 0. Get access to a read-write copy of source. Owners at http://code.google.com/p/google-breakpad/ are able to grant this access. 1. Check out a read-write copy of source using instructions at http://code.google.com/p/google-breakpad/source/checkout 2. Make changes. Build and test your changes. For core code like processor use methods above. For linux/mac/windows, there are test targets in each project file. 3. Download http://codereview.appspot.com/static/upload.py 4. Run upload.py from the 'src' directory: upload.py --server=breakpad.appspot.com You will be prompted for credential and a description. 5. At http://breakpad.appspot.com you'll find your issue listed; click on it, and select Publish+Mail, and enter in the code reviewer and CC google-breakpad-dev@googlegroups.com 6. When applying code review feedback, specify the '-i' option when running upload.py again and pass the issue number so it updates the existing issue, rather than creating a new one. Be sure to rerun upload.py from the same directory as you did for previous uploads to allow for proper diff calculations.