summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2017-04-20 16:57:41 +0200
committerMark Wielaard <mark@klomp.org>2017-04-28 00:14:56 +0200
commita6c6fb4ae497a086e75f9436b67a1de4564bfb91 (patch)
tree6e784ca83c589a211d01d09df2ba952a0f6d845a
parentd6655d9995e3fa9a2318261ec3ef5fc54996f69c (diff)
On elf_update, remember when we mmap()
Otherwise we skip the munmap() later. This leaks resources. Signed-off-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--libelf/ChangeLog4
-rw-r--r--libelf/elf_update.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
index d425e50a..4f232289 100644
--- a/libelf/ChangeLog
+++ b/libelf/ChangeLog
@@ -1,3 +1,7 @@
+2017-04-20 Ulf Hermann <ulf.hermann@qt.io>
+
+ * elf_update.c: Set ELF_F_MMAPPED flag if we mmap from elf_update.
+
2017-04-19 Mark Wielaard <mark@klomp.org>
* elf_getarsym.c (elf_getarsym): Initialize n to zero.
diff --git a/libelf/elf_update.c b/libelf/elf_update.c
index c635eb32..8ce07829 100644
--- a/libelf/elf_update.c
+++ b/libelf/elf_update.c
@@ -74,6 +74,8 @@ write_file (Elf *elf, off_t size, int change_bo, size_t shnum)
MAP_SHARED, elf->fildes, 0);
if (unlikely (elf->map_address == MAP_FAILED))
elf->map_address = NULL;
+ else
+ elf->flags |= ELF_F_MMAPPED;
}
if (elf->map_address != NULL)