From 5165b80762808d78738e8d38141823eedfaf33dc Mon Sep 17 00:00:00 2001 From: Roger Riggs Date: Wed, 19 Jul 2017 16:24:38 -0400 Subject: [PATCH] 8184808: (process) isAlive should use pid for validity, not /proc/pid Reviewed-by: stuefe, xiaofeya --- .../java.base/unix/native/libjava/ProcessHandleImpl_unix.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c b/jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c index 2702849c4a2..c73aba97674 100644 --- a/jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c +++ b/jdk/src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c @@ -662,6 +662,11 @@ pid_t unix_getParentPidAndTimings(JNIEnv *env, pid_t pid, return -1; } + // Validate the pid before returning the info in case /proc/pid is racy + if (kill(pid, 0) < 0) { + return -1; + } + *totalTime = psinfo.pr_time.tv_sec * 1000000000L + psinfo.pr_time.tv_nsec; *startTime = psinfo.pr_start.tv_sec * (jlong)1000 +