summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-10-21 15:39:58 (GMT)
committerGitHub <noreply@github.com>2021-10-21 15:39:58 (GMT)
commit1cdac61065e72db60d26e03ef9286d2743d7000e (patch)
treeb118974db71db92f73df741a6373c5682baa8e6a
parent00ddc1fbd7296ffe066077194a895b175cca26de (diff)
downloadcpython-1cdac61065e72db60d26e03ef9286d2743d7000e.zip
cpython-1cdac61065e72db60d26e03ef9286d2743d7000e.tar.gz
cpython-1cdac61065e72db60d26e03ef9286d2743d7000e.tar.bz2
bpo-45521: Fix a bug in the obmalloc radix tree code. (GH-29051) (GH-29122)
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. (cherry picked from commit 311910b31a4bd94dc79298388b7cb65ca5546438)
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2021-10-18-22-40-33.bpo-45521.GdMiuW.rst3
-rw-r--r--Objects/obmalloc.c2
2 files changed, 4 insertions, 1 deletions
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 0000000..3a082a4
--- /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 15c442b..615703a 100644
--- a/Objects/obmalloc.c
+++ b/Objects/obmalloc.c
@@ -1328,7 +1328,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)