[compiler-rt] Fixed small memory leak in libprofile (PR #141739)

via llvm-commits llvm-commits at lists.llvm.org
Wed May 28 03:37:37 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-pgo

Author: None (gbMattN)

<details>
<summary>Changes</summary>

Inside `getCurFilename`, there is this code snippit
```
if (!lprofCurFilename.FilenamePat || !lprofCurFilename.FilenamePat[0])
    return 0;
```
If this is true, we return `"\0"`, but would leak the memory in `FilenameBuf`.
This pull request adds a free before then to properly free the memory. There was already a check that we allocated memory, so there is no need to worry about freeing unallocated memory.

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


1 Files Affected:

- (modified) compiler-rt/lib/profile/InstrProfilingFile.c (+3-1) 


``````````diff
diff --git a/compiler-rt/lib/profile/InstrProfilingFile.c b/compiler-rt/lib/profile/InstrProfilingFile.c
index e6bab9533146b..354f21b786151 100644
--- a/compiler-rt/lib/profile/InstrProfilingFile.c
+++ b/compiler-rt/lib/profile/InstrProfilingFile.c
@@ -1088,8 +1088,10 @@ const char *__llvm_profile_get_filename(void) {
     return "\0";
   }
   Filename = getCurFilename(FilenameBuf, 1);
-  if (!Filename)
+  if (!Filename) {
+    free(FilenameBuf);
     return "\0";
+  }
 
   return FilenameBuf;
 }

``````````

</details>


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


More information about the llvm-commits mailing list