Date: Fri, 9 Jun 2023 11:10:42 +0800
Subject: [PATCH 44/59] Record file descriptor when ExtensiveErrorReports is enabled

---
 hotspot/src/os/linux/vm/os_linux.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
index ce4c6de09..a05ad07cf 100644
--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
@@ -2586,7 +2586,7 @@ void os::pd_print_file_descriptor(outputStream* st) {
   // Scan the directory, get symbolic link value
   struct dirent *ptr;
   ssize_t readlink_ret = 0;
-  char symbolic_link_value[MAX_PATH_LEN] = {0};
+  char symbolic_link_value[MAX_PATH_LEN + 1] = {0};
   char filename[MAX_PATH_LEN] = {0};
   unsigned long file_count = 0;
   while ((ptr = readdir(dir)) != NULL) {
@@ -2595,6 +2595,7 @@ void os::pd_print_file_descriptor(outputStream* st) {
       (void) snprintf(filename, MAX_PATH_LEN, "%s%s", process_path, ptr->d_name);
       readlink_ret = readlink(filename, symbolic_link_value, MAX_PATH_LEN);
       if (readlink_ret > 0) {
+        symbolic_link_value[readlink_ret] = '\0';
         st->print_cr("%s -> %s", ptr->d_name, symbolic_link_value);
       } else {
         st->print_cr("%s: readlink failed, errno: %d", ptr->d_name, errno);
-- 
2.22.0

