diff -r 5c9c62dad68f -r 47fa336854c3 jdk/src/java.base/linux/native/libjava/ProcessHandleImpl_linux.c --- a/jdk/src/java.base/linux/native/libjava/ProcessHandleImpl_linux.c Fri Sep 11 13:44:30 2015 +0300 +++ b/jdk/src/java.base/linux/native/libjava/ProcessHandleImpl_linux.c Fri Sep 11 09:25:15 2015 -0400 @@ -141,17 +141,21 @@ struct stat stat_buf; /* + * Stat /proc/ to get the user id + */ + snprintf(fn, sizeof fn, "/proc/%d", pid); + if (stat(fn, &stat_buf) == 0) { + unix_getUserInfo(env, jinfo, stat_buf.st_uid); + } + + /* * Try to open /proc//cmdline */ - snprintf(fn, sizeof fn, "/proc/%d/cmdline", pid); + strncat(fn, "/cmdline", sizeof fn - strnlen(fn, sizeof fn) - 1); if ((fd = open(fn, O_RDONLY)) < 0) { return; } - if (fstat(fd, &stat_buf) == 0) { - unix_getUserInfo(env, jinfo, stat_buf.st_uid); - } - do { // Block to break out of on errors int i, truncated = 0; int count;