Fix error check on mmap(2)
It should check MAP_FAILED instead of NULL for error.
On mmap(2) man page:
RETURN VALUE
On success, mmap() returns a pointer to the mapped area.
On error, the value MAP_FAILED (that is, (void *) -1) is
returned, and errno is set to indicate the error.
mem_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS,
-1, // fd (not used here)
0); // offset (not used here)
- if (!memory) {
+ if (memory == MAP_FAILED) {
PyErr_SetFromErrno(PyExc_OSError);
PyErr_FormatUnraisable("Failed to create new mmap for perf trampoline");
perf_status = PERF_STATUS_FAILED;