Taylor Blau <me@xxxxxxxxxxxx> writes: >> > - result = rename(ctx->graph_name, final_graph_name); >> > + result = rename_tempfile(&graph_layer, final_graph_name); >> >> Before this rename, after the close(fd) we saw in the previous hunk, >> there is one early error return when we fail to rename the base >> graph file. Do we need to do anything there, or an unfinished >> tempfile getting removed at the process termination is sufficient >> for cleaning up the mess? > > We could explicitly clean it up, but we'll do so implicitly upon exit, > so I think it's fine to leave it as-is. I am not worried about cleaning it up. Upon exit, the underlying file descriptor will be closed, but this new code never does fclose() on the FILE* that has a buffer around the underlying file descriptor. How are we guaranteeing that we are not losing anything buffered but not flushed yet?