summaryrefslogtreecommitdiff
path: root/devel/elfutils/files/patch-libelf_elf_update.c
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2018-11-07 05:39:48 +0000
committerConrad Meyer <cem@FreeBSD.org>2018-11-07 05:39:48 +0000
commit662466ff6305bdb9603c44056532e17d97c25e24 (patch)
tree43a6f99681663155d6a2a1394ba67b9476b83a32 /devel/elfutils/files/patch-libelf_elf_update.c
parentlang/crystal: update to 0.27.0 (diff)
Update devel/elfutils to 0.174
PR: 232932 Reported by: gerald Approved by: gerald Differential Revision: https://reviews.freebsd.org/D17832
Diffstat (limited to 'devel/elfutils/files/patch-libelf_elf_update.c')
-rw-r--r--devel/elfutils/files/patch-libelf_elf_update.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/devel/elfutils/files/patch-libelf_elf_update.c b/devel/elfutils/files/patch-libelf_elf_update.c
new file mode 100644
index 000000000000..d09bd2c2f695
--- /dev/null
+++ b/devel/elfutils/files/patch-libelf_elf_update.c
@@ -0,0 +1,18 @@
+--- libelf/elf_update.c.orig 2018-09-14 03:23:36.000000000 -0700
++++ libelf/elf_update.c
+@@ -106,9 +106,13 @@
+ if (elf->cmd == ELF_C_RDWR_MMAP
+ && (size_t) size > elf->maximum_size)
+ {
+- if (mremap (elf->map_address, elf->maximum_size,
+- size, 0) == MAP_FAILED)
++ if (munmap (elf->map_address, elf->maximum_size) != 0 ||
++ mmap (elf->map_address, size, PROT_READ | PROT_WRITE,
++ MAP_SHARED | MAP_FIXED | MAP_EXCL, elf->fildes,
++ 0) == MAP_FAILED)
+ {
++ elf->map_address = NULL;
++ elf->flags &= ~ELF_F_MMAPPED;
+ __libelf_seterrno (ELF_E_WRITE_ERROR);
+ return -1;
+ }