PR c++/11990:
[deliverable/binutils-gdb.git] / gdb / linux-tdep.c
index cc63e9b8e5f6530f16f911e5c0505ebf74d25102..9def1086483d3db4bf2a05c27ad01bc57bb207d3 100644 (file)
@@ -720,20 +720,30 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
               line = strtok (NULL, "\n"))
            {
              char keyword[64 + 1];
-             unsigned long number;
 
-             if (sscanf (line, "%64s%lu kB\n", keyword, &number) != 2)
+             if (sscanf (line, "%64s", keyword) != 1)
                {
                  warning (_("Error parsing {s,}maps file '%s'"), mapsfilename);
                  break;
                }
              if (strcmp (keyword, "Anonymous:") == 0)
                has_anonymous = 1;
-             if (number != 0 && (strcmp (keyword, "Shared_Dirty:") == 0
-                                 || strcmp (keyword, "Private_Dirty:") == 0
-                                 || strcmp (keyword, "Swap:") == 0
-                                 || strcmp (keyword, "Anonymous:") == 0))
-               modified = 1;
+             if (strcmp (keyword, "Shared_Dirty:") == 0
+                 || strcmp (keyword, "Private_Dirty:") == 0
+                 || strcmp (keyword, "Swap:") == 0
+                 || strcmp (keyword, "Anonymous:") == 0)
+               {
+                 unsigned long number;
+
+                 if (sscanf (line, "%*s%lu", &number) != 1)
+                   {
+                     warning (_("Error parsing {s,}maps file '%s' number"),
+                              mapsfilename);
+                     break;
+                   }
+                 if (number != 0)
+                   modified = 1;
+               }
            }
 
          /* Older Linux kernels did not support the "Anonymous:" counter.
This page took 0.023298 seconds and 4 git commands to generate.