mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-06 23:02:10 +03:00
don't fail to map library/executable with zero-length segment maps
reportedly the GNU linker can emit such segments, causing spurious failure to load due to mmap with a length of zero producing EINVAL. no action is required for such a load map (it's effectively a nop in the program headers table) so just treat it as always successful.
This commit is contained in:
parent
e48e99c112
commit
cfdfd5ea3c
@ -579,6 +579,7 @@ static void *mmap_fixed(void *p, size_t n, int prot, int flags, int fd, off_t of
|
||||
{
|
||||
static int no_map_fixed;
|
||||
char *q;
|
||||
if (!n) return p;
|
||||
if (!no_map_fixed) {
|
||||
q = mmap(p, n, prot, flags|MAP_FIXED, fd, off);
|
||||
if (!DL_NOMMU_SUPPORT || q != MAP_FAILED || errno != EINVAL)
|
||||
|
Loading…
Reference in New Issue
Block a user