commit: e03c865b4837f0f3699499a77b31fbae21b19b77
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 7 19:52:39 2025 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue Jan 7 20:06:25 2025 +0000
URL: https://gitweb.gentoo.org/proj/sandbox.git/commit/?id=e03c865b
libsandbox: use mmap64 when available
We build libsandbox with _FILE_OFFSET_BITS=64, so we need to call
dlsym("mmap64") to get the right function from glibc.
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
configure.ac | 1 +
libsandbox/memory.c | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/configure.ac b/configure.ac
index 2835794..0ada7d8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -211,6 +211,7 @@ AC_CHECK_FUNCS_ONCE(m4_flatten([
mkstemp64
mkstemps
mkstemps64
+ mmap64
open64
openat
openat64
diff --git a/libsandbox/memory.c b/libsandbox/memory.c
index a8f4d4b..69aa972 100644
--- a/libsandbox/memory.c
+++ b/libsandbox/memory.c
@@ -25,7 +25,11 @@ static void *(*_sb_mmap)(void *addr, size_t length, int
prot, int flags, int fd,
static void *sb_mmap(void *addr, size_t length, int prot, int flags, int fd,
off_t offset)
{
if (!_sb_mmap)
+#ifdef HAVE_MMAP64
+ _sb_mmap = get_dlsym("mmap64", NULL);
+#else
_sb_mmap = get_dlsym("mmap", NULL);
+#endif
return _sb_mmap(addr, length, prot, flags, fd, offset);
}
#define mmap sb_mmap