Staging
v0.5.1
https://github.com/python/cpython
Revision 1c4dcafd0b025e771f4dbd7197d0b5f263c9cb54 authored by Miss Islington (bot) on 27 May 2020, 15:51:23 UTC, committed by GitHub on 27 May 2020, 15:51:23 UTC

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>
1 parent a93bf82
Raw File
Tip revision: 1c4dcafd0b025e771f4dbd7197d0b5f263c9cb54 authored by Miss Islington (bot) on 27 May 2020, 15:51:23 UTC
bpo-13097: ctypes: limit callback to 1024 arguments (GH-19914)
Tip revision: 1c4dcaf
pydtrace.d
/* Python DTrace provider */

provider python {
    probe function__entry(const char *, const char *, int);
    probe function__return(const char *, const char *, int);
    probe instance__new__start(const char *, const char *);
    probe instance__new__done(const char *, const char *);
    probe instance__delete__start(const char *, const char *);
    probe instance__delete__done(const char *, const char *);
    probe line(const char *, const char *, int);
    probe gc__start(int);
    probe gc__done(long);
    probe import__find__load__start(const char *);
    probe import__find__load__done(const char *, int);
};

#pragma D attributes Evolving/Evolving/Common provider python provider
#pragma D attributes Evolving/Evolving/Common provider python module
#pragma D attributes Evolving/Evolving/Common provider python function
#pragma D attributes Evolving/Evolving/Common provider python name
#pragma D attributes Evolving/Evolving/Common provider python args
back to top