summaryrefslogtreecommitdiff
path: root/rts/Profiling.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-07-26 10:32:25 -0400
committerBen Gamari <ben@smart-cactus.org>2019-07-26 10:34:04 -0400
commitdde76af0af6ef75e2593d9135f432170b1c841dc (patch)
tree57cce4928fa40a44d76c3995c4cc440e4649cc19 /rts/Profiling.c
parentb9c99df1a4cdd23bcd26db7ae6ee7ee6464d654e (diff)
downloadhaskell-wip/T16993.tar.gz
rts: Always truncate output fileswip/T16993
Previously there were numerous places in the RTS where we would fopen with the "w" flag string. This is wrong as it will not truncate the file. Consequently if we write less data than the previous length of the file we will leave garbage at its end. Fixes #16993.
Diffstat (limited to 'rts/Profiling.c')
-rw-r--r--rts/Profiling.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/Profiling.c b/rts/Profiling.c
index f340a63cff..b91129ed98 100644
--- a/rts/Profiling.c
+++ b/rts/Profiling.c
@@ -263,7 +263,7 @@ initProfilingLogFile(void)
sprintf(prof_filename, "%s.prof", stem);
/* open the log file */
- if ((prof_file = __rts_fopen(prof_filename, "w")) == NULL) {
+ if ((prof_file = __rts_fopen(prof_filename, "w+")) == NULL) {
debugBelch("Can't open profiling report file %s\n", prof_filename);
RtsFlags.CcFlags.doCostCentres = 0;
// Retainer profiling (`-hr` or `-hr<cc> -h<x>`) writes to