summaryrefslogtreecommitdiff
path: root/core/jni
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2021-03-18 17:12:18 -0700
committerJosh Gao <jmgao@google.com>2021-03-18 17:17:01 -0700
commit4eb201e40ced5961cf358df0de038da08b7dbaef (patch)
tree78574842f81d5b476f9f7014cf3312f63a0e5fb5 /core/jni
parent26ba4d0d09f775f8c7c074b0a4338bce62a6f0f6 (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
Diffstat (limited to 'core/jni')
-rw-r--r--core/jni/android_util_Process.cpp9
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;