summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exec/exec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/exec/exec.c b/exec/exec.c
index cb3d7418..daa8a24b 100644
--- a/exec/exec.c
+++ b/exec/exec.c
@@ -1008,10 +1008,13 @@ finish (struct execdata *e, int dealloc_file)
#ifdef EXECDATA_STREAM
fclose (&e->stream);
#else
- if (e->file_data != NULL)
+ if (e->file_data != NULL) {
free (e->file_data);
- else if (map_buffer (e) != NULL)
+ e->file_data = NULL;
+ } else if (map_buffer (e) != NULL) {
munmap (map_buffer (e), map_vsize (e));
+ map_buffer (e) = NULL;
+ }
#endif
}
if (dealloc_file && e->file != MACH_PORT_NULL)