[3.12] gh-113343: Fix error check on mmap(2) (GH-113342) (#113374)

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 6b70c3dc5a)

Co-authored-by: Namhyung Kim <namhyung@gmail.com>
This commit is contained in:
Miss Islington (bot) 2023-12-21 20:44:15 +01:00 committed by GitHub
parent 8836c2d91a
commit c38ebb40d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -247,7 +247,7 @@ new_code_arena(void)
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);