]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-113343: Fix error check on mmap(2) (GH-113342) (#113374)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 21 Dec 2023 19:44:15 +0000 (20:44 +0100)
committerGitHub <noreply@github.com>
Thu, 21 Dec 2023 19:44:15 +0000 (19:44 +0000)
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>
Python/perf_trampoline.c

index a91f4f82877b3a5adaa9dbb02131d5a452efbd5b..ea9dc83dd0fd8a52495c3caf86dc66997a6c0605 100644 (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);