diff options
| author | 2024-11-13 17:27:07 +0000 | |
|---|---|---|
| committer | 2024-11-13 17:27:07 +0000 | |
| commit | eb31f93941f5e27601d54fcfae6ad115095ac800 (patch) | |
| tree | e0d29da124489c4dfc37a16cff031e4030bbcf6d | |
| parent | 1e0dbfcb50535db4fe067a543ed26bd80a450941 (diff) | |
| parent | 2828cdc7ca40e8c142338b36c146968076eca33e (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.cpp | 3 |
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); } |