Page MenuHomeFreeBSD

crt_malloc: Be more persistent when handling mmap() failure
ClosedPublic

Authored by kib on Oct 12 2021, 9:48 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 11, 10:37 AM
Unknown Object (File)
Nov 27 2024, 9:47 PM
Unknown Object (File)
Nov 25 2024, 10:57 AM
Unknown Object (File)
Nov 23 2024, 7:23 PM
Unknown Object (File)
Nov 20 2024, 12:44 PM
Unknown Object (File)
Nov 15 2024, 8:04 PM
Unknown Object (File)
Nov 15 2024, 3:08 AM
Unknown Object (File)
Nov 15 2024, 2:58 AM
Subscribers

Details

Summary
In the situation with limited address space, together with
fragmentation, it is possible for mmap() request in morecore() to fail
when asking for required size + NPOOLPAGES, but succeed without the
addend.  Retry allocation there.

PR:     259076
Reported by:    Denis Koreshkov <dynamic-wind@mail.ru>

Also

crt_malloc: use uintptr_t instead of long for arithmetic on addresses

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib requested review of this revision.Oct 12 2021, 9:48 PM

LGTM. roundup2 usage can be simplified but feel free to ignore that suggestion.

libexec/rtld-elf/rtld_malloc.c
262

roundup2 is now type-preserving, so you should be able to pass a caddr_t argument.

This revision is now accepted and ready to land.Oct 12 2021, 10:17 PM