]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-13097: ctypes: limit callback to 1024 arguments (GH-19914)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 27 May 2020 15:46:57 +0000 (08:46 -0700)
committerGitHub <noreply@github.com>
Wed, 27 May 2020 15:46:57 +0000 (08:46 -0700)
commit788d7bfe189e715eab3855c20ea5d6da0d8bed70
tree35185dbba7687cc472d1b004146516bde7e9f114
parent43fccb18754155aea3e2ff79c75e4befd339182f
bpo-13097: ctypes: limit callback to 1024 arguments (GH-19914)

ctypes now raises an ArgumentError when a callback
is invoked with more than 1024 arguments.

The ctypes module allocates arguments on the stack in
ctypes_callproc() using alloca(), which is problematic
when large numbers of arguments are passed. Instead
of a stack overflow, this commit raises an ArgumentError
if more than 1024 parameters are passed.
(cherry picked from commit 29a1384c040d39659e7d01f1fd7b6eb71ef2634e)

Co-authored-by: Sean Gillespie <sean@swgillespie.me>
Lib/ctypes/test/test_callbacks.py
Misc/NEWS.d/next/Library/2020-05-06-02-01-25.bpo-13097.Wh5xSK.rst [new file with mode: 0644]
Modules/_ctypes/callproc.c