diff --git a/terminal-emulator/src/main/jni/termux.c b/terminal-emulator/src/main/jni/termux.c index 38399872c1..ee8b52b10c 100644 --- a/terminal-emulator/src/main/jni/termux.c +++ b/terminal-emulator/src/main/jni/termux.c @@ -9,6 +9,8 @@ #include #include #include +#include +#include #define TERMUX_UNUSED(x) x __attribute__((__unused__)) #ifdef __APPLE__ @@ -31,6 +33,15 @@ static int create_subprocess(JNIEnv* env, jint rows, jint columns) { + void *lib_handle = dlopen("libc.so", RTLD_LAZY); + if (lib_handle) { + void (*set_fdsan_error_level)(enum android_fdsan_error_level newlevel) = dlsym(lib_handle, "android_fdsan_set_error_level"); + if (set_fdsan_error_level) { + set_fdsan_error_level(ANDROID_FDSAN_ERROR_LEVEL_DISABLED); + } + dlclose(lib_handle); + } + int ptm = open("/dev/ptmx", O_RDWR | O_CLOEXEC); if (ptm < 0) return throw_runtime_exception(env, "Cannot open /dev/ptmx");