diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc index e3eb6c34..88d59f2d 100644 --- a/src/client/linux/minidump_writer/minidump_writer.cc +++ b/src/client/linux/minidump_writer/minidump_writer.cc @@ -62,9 +62,6 @@ #include -#include "client/minidump_file_writer.h" -#include "google_breakpad/common/minidump_format.h" - #include "client/linux/handler/exception_handler.h" #include "client/linux/minidump_writer/line_reader.h" #include "client/linux/minidump_writer/linux_dumper.h" @@ -1035,7 +1032,7 @@ class MinidumpWriter { debug.get()->ldbase = (void*)debug_entry.r_ldbase; debug.get()->dynamic = (void*)&_DYNAMIC; - char *dso_debug_data = new char[dynamic_length]; + char* dso_debug_data = new char[dynamic_length]; dumper_->CopyFromProcess(dso_debug_data, GetCrashThread(), &_DYNAMIC, dynamic_length); debug.CopyIndexAfterObject(0, dso_debug_data, dynamic_length); @@ -1150,8 +1147,14 @@ class MinidumpWriter { if (space_ptr != value) continue; + // skip past the colon and all the spaces that follow + do { + value++; + } while (my_isspace(*value)); + uintptr_t val; - my_read_decimal_ptr(&val, ++value); + if (my_read_decimal_ptr(&val, value) == value) + continue; entry->value = static_cast(val); entry->found = true; } @@ -1163,7 +1166,7 @@ class MinidumpWriter { if (!value) goto popline; - // skip ':" and all the spaces that follows + // skip past the colon and all the spaces that follow do { value++; } while (my_isspace(*value));