summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author T.J. Mercier <tjmercier@google.com> 2024-11-13 17:27:07 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2024-11-13 17:27:07 +0000
commiteb31f93941f5e27601d54fcfae6ad115095ac800 (patch)
treee0d29da124489c4dfc37a16cff031e4030bbcf6d
parent1e0dbfcb50535db4fe067a543ed26bd80a450941 (diff)
parent2828cdc7ca40e8c142338b36c146968076eca33e (diff)
Merge "Fix system_server SIGABRT due to non-UTF-8 process name in /proc/PID/stat" into main
-rw-r--r--core/jni/android_util_Process.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index 4cc904153aac..4369cb0d82b4 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -33,6 +33,7 @@
#include <algorithm>
#include <array>
+#include <cctype>
#include <cstring>
#include <limits>
#include <memory>
@@ -1004,6 +1005,8 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz,
}
}
if ((mode&PROC_OUT_STRING) != 0 && di < NS) {
+ std::replace_if(buffer+start, buffer+end,
+ [](unsigned char c){ return !std::isprint(c); }, '?');
jstring str = env->NewStringUTF(buffer+start);
env->SetObjectArrayElement(outStrings, di, str);
}