From: Neil Schemenauer Date: Thu, 21 Oct 2021 13:38:36 +0000 (-0700) Subject: bpo-45521: Fix a bug in the obmalloc radix tree code. (GH-29051) X-Git-Tag: v3.11.0a2~118 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=311910b31a4bd94dc79298388b7cb65ca5546438;p=thirdparty%2FPython%2Fcpython.git bpo-45521: Fix a bug in the obmalloc radix tree code. (GH-29051) MAP_BOT_LENGTH was incorrectly used to compute MAP_TOP_MASK instead of MAP_TOP_LENGTH. On 64-bit machines, the error causes the tree to hold 46-bits of virtual addresses, rather than the intended 48-bits. --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-10-18-22-40-33.bpo-45521.GdMiuW.rst b/Misc/NEWS.d/next/Core and Builtins/2021-10-18-22-40-33.bpo-45521.GdMiuW.rst new file mode 100644 index 000000000000..3a082a4ffdbc --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-10-18-22-40-33.bpo-45521.GdMiuW.rst @@ -0,0 +1,3 @@ +Fix a bug in the obmalloc radix tree code. On 64-bit machines, the bug +causes the tree to hold 46-bits of virtual addresses, rather than the +intended 48-bits. diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c index d8d6f6dea0d5..2eddb2cafd49 100644 --- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -1341,7 +1341,7 @@ _Py_GetAllocatedBlocks(void) #define MAP_TOP_BITS INTERIOR_BITS #define MAP_TOP_LENGTH (1 << MAP_TOP_BITS) -#define MAP_TOP_MASK (MAP_BOT_LENGTH - 1) +#define MAP_TOP_MASK (MAP_TOP_LENGTH - 1) #define MAP_MID_BITS INTERIOR_BITS #define MAP_MID_LENGTH (1 << MAP_MID_BITS)