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

via llvm-commits llvm-commits at lists.llvm.org
Wed May 28 06:51:53 PDT 2025


Author: gbMattN
Date: 2025-05-28T14:51:50+01:00
New Revision: 2b1ebef8b8a5af7092de80daafd2743683d0e8c8

URL: https://github.com/llvm/llvm-project/commit/2b1ebef8b8a5af7092de80daafd2743683d0e8c8
DIFF: https://github.com/llvm/llvm-project/commit/2b1ebef8b8a5af7092de80daafd2743683d0e8c8.diff

LOG: Fixed small memory leak in libprofile (#141739)

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.

Added: 
    

Modified: 
    compiler-rt/lib/profile/InstrProfilingFile.c

Removed: 
    


################################################################################
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;
 }


        


More information about the llvm-commits mailing list