summaryrefslogtreecommitdiff
path: root/core/java/android/os/Process.java
diff options
context:
space:
mode:
authorMarco Ballesio <balejs@google.com>2021-02-08 17:08:41 -0800
committerMarco Ballesio <balejs@google.com>2021-02-09 19:36:07 +0000
commit911519f25a423f0332c03409a23c7b34a09d24f6 (patch)
tree3e7b4b47794cf6643e2793e562d11b0125f1a8b7 /core/java/android/os/Process.java
parentd41c119656ddf4bc8d49c5bf981e0c911c5565ec (diff)
freezer: handle exception in locks file format
Safeguard /proc/locks processing from wrongly formatted /proc/locks files Bug: 179171387 Test: could not reproduce the issue, but verified that no crashes occurred in a prolonged test (4hrs+) Change-Id: Ia8a12903f2e520e51780c8b05876aa1c9083e92b (cherry picked from commit fb4f4073f6eae95d236687a857e64acf262fa215)
Diffstat (limited to 'core/java/android/os/Process.java')
-rw-r--r--core/java/android/os/Process.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 47598cf35974..34664a4085e5 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -1406,7 +1406,7 @@ public class Process {
*
* @hide
*/
- public static boolean hasFileLocks(int pid) throws IOException {
+ public static boolean hasFileLocks(int pid) throws Exception {
BufferedReader br = null;
try {
@@ -1418,8 +1418,13 @@ public class Process {
for (int i = 0; i < 5 && st.hasMoreTokens(); i++) {
String str = st.nextToken();
- if (i == 4 && Integer.parseInt(str) == pid) {
- return true;
+ try {
+ if (i == 4 && Integer.parseInt(str) == pid) {
+ return true;
+ }
+ } catch (NumberFormatException nfe) {
+ throw new Exception("Exception parsing /proc/locks at \" "
+ + line + " \", token #" + i);
}
}
}