]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-145792: Fix incorrect alloca allocation size in traceback.c (GH-145814...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 13 Mar 2026 12:45:18 +0000 (13:45 +0100)
committerGitHub <noreply@github.com>
Fri, 13 Mar 2026 12:45:18 +0000 (12:45 +0000)
gh-145792: Fix incorrect alloca allocation size in traceback.c (GH-145814)
(cherry picked from commit 59d97683c19923b06e2b2110efadb90fe37f53f3)

Co-authored-by: VanshAgarwal24036 <148854295+VanshAgarwal24036@users.noreply.github.com>
Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-19-09-47.gh-issue-145792.X5KUhc.rst [new file with mode: 0644]
Python/traceback.c

diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-19-09-47.gh-issue-145792.X5KUhc.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-19-09-47.gh-issue-145792.X5KUhc.rst
new file mode 100644 (file)
index 0000000..bd42f32
--- /dev/null
@@ -0,0 +1,2 @@
+Fix out-of-bounds access when invoking faulthandler on a CPython build
+compiled without support for VLAs.
index b9c9132c0c50c1ec6de93ab2beba8263e7ff3ef2..c8c13d16d4c79c3dc30648abdc7ed38cc1be5bf9 100644 (file)
@@ -42,7 +42,7 @@
 
 #if defined(__STDC_NO_VLA__) && (__STDC_NO_VLA__ == 1)
 /* Use alloca() for VLAs. */
-#  define VLA(type, name, size) type *name = alloca(size)
+#  define VLA(type, name, size) type *name = alloca(sizeof(type) * (size))
 #elif !defined(__STDC_NO_VLA__) || (__STDC_NO_VLA__ == 0)
 /* Use actual C VLAs.*/
 #  define VLA(type, name, size) type name[size]