diff options
author | Josh Gao <jmgao@google.com> | 2021-03-18 17:12:18 -0700 |
---|---|---|
committer | Josh Gao <jmgao@google.com> | 2021-03-18 17:17:01 -0700 |
commit | 4eb201e40ced5961cf358df0de038da08b7dbaef (patch) | |
tree | 78574842f81d5b476f9f7014cf3312f63a0e5fb5 | |
parent | 26ba4d0d09f775f8c7c074b0a4338bce62a6f0f6 (diff) |
Switch to bionic's pidfd_open.
Bionic's syscall wrappers contain instrumentation so that libraries like
fdtrack can hook them at runtime when diagnosing fd leaks.
Bug: http://b/172518739
Test: treehugger
Change-Id: I9b2e07f6be9463a37cd4e51d914d93ffc89907fc
-rw-r--r-- | core/jni/android_util_Process.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp index 04faebc7beff..63743051bc40 100644 --- a/core/jni/android_util_Process.cpp +++ b/core/jni/android_util_Process.cpp @@ -52,6 +52,7 @@ #include <string.h> #include <sys/epoll.h> #include <sys/errno.h> +#include <sys/pidfd.h> #include <sys/resource.h> #include <sys/stat.h> #include <sys/syscall.h> @@ -1290,14 +1291,8 @@ void android_os_Process_removeAllProcessGroups(JNIEnv* env, jobject clazz) return removeAllProcessGroups(); } -// Wrapper function to the syscall pidfd_open, which creates a file -// descriptor that refers to the process whose PID is specified in pid. -static inline int sys_pidfd_open(pid_t pid, unsigned int flags) { - return syscall(__NR_pidfd_open, pid, flags); -} - static jint android_os_Process_nativePidFdOpen(JNIEnv* env, jobject, jint pid, jint flags) { - int fd = sys_pidfd_open(pid, flags); + int fd = pidfd_open(pid, flags); if (fd < 0) { jniThrowErrnoException(env, "nativePidFdOpen", errno); return -1; |