aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2015-12-14 16:05:49 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2015-12-15 12:00:22 +0000
commit3d9312e64a825c06f5e2e8883320089f1fa158ef (patch)
treee6f62fbac1830bf1384782c2f9cc8768cd6c0170
parente12c4414cbf679367d9187f16dddd6c6b138b6f5 (diff)
Prevent ProcMemInfo from crashing when it gets weird input
-- MOS_MIGRATED_REVID=110155243
-rw-r--r--src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/util/ProcMeminfoParserTest.java3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java b/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java
index e9ba03640b..dd72706909 100644
--- a/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java
+++ b/src/main/java/com/google/devtools/build/lib/util/ProcMeminfoParser.java
@@ -48,6 +48,9 @@ public class ProcMeminfoParser {
ImmutableMap.Builder<String, Long> builder = ImmutableMap.builder();
for (String line : lines) {
int colon = line.indexOf(':');
+ if (colon == -1) {
+ continue;
+ }
String keyword = line.substring(0, colon);
String valString = line.substring(colon + 1);
try {
diff --git a/src/test/java/com/google/devtools/build/lib/util/ProcMeminfoParserTest.java b/src/test/java/com/google/devtools/build/lib/util/ProcMeminfoParserTest.java
index 50324a8467..352cb39aaa 100644
--- a/src/test/java/com/google/devtools/build/lib/util/ProcMeminfoParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/util/ProcMeminfoParserTest.java
@@ -66,7 +66,8 @@ public class ProcMeminfoParserTest {
"HugePages_Rsvd: 0",
"Hugepagesize: 2048 kB",
"Bogus: not_a_number",
- "Bogus2: 1000000000000000000000000000000000000000000000000 kB"
+ "Bogus2: 1000000000000000000000000000000000000000000000000 kB",
+ "Not even a valid line"
);
String meminfoFile = scratch.file("test_meminfo", meminfoContent).getPathString();