[llvm] [BOLT][runtime] harden hugify THP support check. (PR #192042)

via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 14 04:59:19 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-bolt

Author: David CARLIER (devnexen)

<details>
<summary>Changes</summary>



---
Full diff: https://github.com/llvm/llvm-project/pull/192042.diff


1 Files Affected:

- (modified) bolt/runtime/hugify.cpp (+8-3) 


``````````diff
diff --git a/bolt/runtime/hugify.cpp b/bolt/runtime/hugify.cpp
index de896307f24fc..4a6d44efca4ea 100644
--- a/bolt/runtime/hugify.cpp
+++ b/bolt/runtime/hugify.cpp
@@ -65,20 +65,25 @@ static bool hasPagecacheTHPSupport() {
   char Buf[64];
 
   int FD = __open("/sys/kernel/mm/transparent_hugepage/enabled",
-                  0 /* O_RDONLY */, 0);
+                  O_CLOEXEC /* O_RDONLY | O_CLOEXEC */, 0);
   if (FD < 0)
     return false;
 
   memset(Buf, 0, sizeof(Buf));
-  const size_t Res = __read(FD, Buf, sizeof(Buf));
-  if (Res < 0)
+  const size_t Res = __read(FD, Buf, sizeof(Buf) - 1);
+  if (static_cast<int64_t>(Res) < 0) {
+    __close(FD);
     return false;
+  }
 
   if (!strStr(Buf, "[always]") && !strStr(Buf, "[madvise]")) {
     DEBUG(report("[hugify] THP support is not enabled.\n");)
+    __close(FD);
     return false;
   }
 
+  __close(FD);
+
   struct KernelVersionTy {
     uint32_t major;
     uint32_t minor;

``````````

</details>


https://github.com/llvm/llvm-project/pull/192042


More information about the llvm-commits mailing list