gh-113343: Fix error check on mmap(2) (GH-113342)
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.
(cherry picked from commit
6b70c3dc5ab2f290fcdbe474bcb7d6fdf29eae4c)
Co-authored-by: Namhyung Kim <namhyung@gmail.com>
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_WriteUnraisableMsg(
"Failed to create new mmap for perf trampoline", NULL);