Merge trunk r1050 to chrome_23 branch.

Fix a parsing error in the Linux dump writer.

Original Review URL: https://breakpad.appspot.com/464002
Review URL: https://breakpad.appspot.com/471002

git-svn-id: http://google-breakpad.googlecode.com/svn/branches/chrome_23@1054 4c0a9323-5329-0410-9bdc-e9ce6186880e
diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
index e3eb6c3..88d59f2 100644
--- a/src/client/linux/minidump_writer/minidump_writer.cc
+++ b/src/client/linux/minidump_writer/minidump_writer.cc
@@ -62,9 +62,6 @@
 
 #include <algorithm>
 
-#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 @@
     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 @@
             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<int>(val);
             entry->found = true;
           }
@@ -1163,7 +1166,7 @@
           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));