Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[XBT] Fix array indices in memory_map.cpp
authorChristian Heinrich <franz-christian.heinrich@inria.fr>
Fri, 17 Jun 2016 08:49:37 +0000 (10:49 +0200)
committerChristian Heinrich <franz-christian.heinrich@inria.fr>
Fri, 17 Jun 2016 09:27:40 +0000 (11:27 +0200)
Also add an 'else' case that should never be reached.

See man(5) proc for more details.

src/xbt/memory_map.cpp

index d9092a2..9babc54 100644 (file)
@@ -123,10 +123,14 @@ XBT_PRIVATE std::vector<VmMap> get_memory_map(pid_t pid)
     if (memreg.prot == 0)
       memreg.prot |= PROT_NONE;
 
-    if (lfields[1][4] == 'p')
+    if (lfields[1][3] == 'p')
       memreg.flags |= MAP_PRIVATE;
-    else if (lfields[1][4] == 's')
+    else if (lfields[1][3] == 's')
       memreg.flags |= MAP_SHARED;
+    else {
+      //fprintf(stderr,"%s", line);
+      xbt_die("Flag was neither 'p' (private) nor 's' (shared). This should have never happened! Instead, the permissions column was set to: %s", lfields[1]);
+    }
 
     /* Get the offset value */
     memreg.offset = std::strtoull(lfields[2], &endptr, 16);