Fix format specifier in proc maps to support 32-bit architectures.

R=ivanpe@chromium.org

Review URL: https://codereview.chromium.org/1288323003

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk/src@1486 4c0a9323-5329-0410-9bdc-e9ce6186880e
diff --git a/google_breakpad/processor/proc_maps_linux.h b/google_breakpad/processor/proc_maps_linux.h
index 22f9f6a..b8e6eb9 100644
--- a/google_breakpad/processor/proc_maps_linux.h
+++ b/google_breakpad/processor/proc_maps_linux.h
@@ -23,8 +23,8 @@
   };
 
   // The address range [start,end) of mapped memory.
-  uintptr_t start;
-  uintptr_t end;
+  uint64_t start;
+  uint64_t end;
 
   // Byte offset into |path| of the range mapped into memory.
   uint64_t offset;
diff --git a/processor/proc_maps_linux.cc b/processor/proc_maps_linux.cc
index 1954cc8..3ba767f 100644
--- a/processor/proc_maps_linux.cc
+++ b/processor/proc_maps_linux.cc
@@ -61,10 +61,10 @@
     // The final %n term captures the offset in the input string, which is used
     // to determine the path name. It *does not* increment the return value.
     // Refer to man 3 sscanf for details.
-    if (sscanf(line, "%lx-%lx %4c %lx %hhx:%hhx %ld %n",
-               &region.start, &region.end, permissions, &region.offset,
-               &region.major_device, &region.minor_device, &region.inode,
-               &path_index) < 7) {
+    if (sscanf(line, "%" SCNx64 "-%" SCNx64 " %4c %" SCNx64" %hhx:%hhx %"
+               SCNd64 " %n", &region.start, &region.end, permissions,
+               &region.offset, &region.major_device, &region.minor_device,
+               &region.inode, &path_index) < 7) {
       BPLOG(ERROR) << "sscanf failed for line: " << line;
       return false;
     }