mmap() is the same syscall the dynamic linker uses to map shared libraries into a process and that glibc's malloc calls directly once an allocation crosses its mmap threshold, bypassing the heap entirely. Confusing MAP_PRIVATE with MAP_SHARED is a classic production bug: one silently writes your changes back to the underlying file, the other never does.