summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2021-03-24 13:41:57 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2021-03-30 00:48:06 -0400
commit84eb6b3328c47fb83bbc9d1fa3ec78f8703b6e02 (patch)
tree3d8266dc1493caca08c03f12f5e98941b036cb5b
parent971ac952b373740254915fac041522e606596a20 (diff)
downloadhaskell-84eb6b3328c47fb83bbc9d1fa3ec78f8703b6e02.tar.gz
[linker] no munmap if either agument is invalid.
(cherry picked from commit 608f74a2235a2e545fb9b80a80ceb5ee448ef8e5)
-rw-r--r--rts/linker/MachO.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/rts/linker/MachO.c b/rts/linker/MachO.c
index f301f0a340..cdafcb1c89 100644
--- a/rts/linker/MachO.c
+++ b/rts/linker/MachO.c
@@ -462,7 +462,10 @@ makeGot(ObjectCode * oc) {
void
freeGot(ObjectCode * oc) {
- munmapForLinker(oc->info->got_start, oc->info->got_size, "freeGot");
+ /* sanity check */
+ if(NULL != oc->info->got_start && oc->info->got_size > 0) {
+ munmapForLinker(oc->info->got_start, oc->info->got_size, "freeGot");
+ }
oc->info->got_start = NULL;
oc->info->got_size = 0;
}