Skip to content

Commit 76b646e

Browse files
committed
gh-111178: Change Argument Clinic signature for METH_METHOD
Replace "Py_ssize_t nargs" with "size_t nargs" for METH_METHOD|METH_FASTCALL functions to fix an undefined behavior.
1 parent 9d759b6 commit 76b646e

30 files changed

+177
-177
lines changed

Lib/test/clinic.test.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4758,7 +4758,7 @@ static PyObject *
47584758
Test_cls_with_param_impl(TestObj *self, PyTypeObject *cls, int a);
47594759

47604760
static PyObject *
4761-
Test_cls_with_param(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
4761+
Test_cls_with_param(PyObject *self, PyTypeObject *cls, PyObject *const *args, size_t nargs, PyObject *kwnames)
47624762
{
47634763
PyObject *return_value = NULL;
47644764
#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
@@ -4806,7 +4806,7 @@ Test_cls_with_param(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py
48064806

48074807
static PyObject *
48084808
Test_cls_with_param_impl(TestObj *self, PyTypeObject *cls, int a)
4809-
/*[clinic end generated code: output=7e893134a81fef92 input=af158077bd237ef9]*/
4809+
/*[clinic end generated code: output=9f0983c4b628bed0 input=af158077bd237ef9]*/
48104810

48114811

48124812
/*[clinic input]
@@ -4908,7 +4908,7 @@ static PyObject *
49084908
Test_cls_no_params_impl(TestObj *self, PyTypeObject *cls);
49094909

49104910
static PyObject *
4911-
Test_cls_no_params(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
4911+
Test_cls_no_params(PyObject *self, PyTypeObject *cls, PyObject *const *args, size_t nargs, PyObject *kwnames)
49124912
{
49134913
if (nargs || (kwnames && PyTuple_GET_SIZE(kwnames))) {
49144914
PyErr_SetString(PyExc_TypeError, "cls_no_params() takes no arguments");
@@ -4919,7 +4919,7 @@ Test_cls_no_params(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_
49194919

49204920
static PyObject *
49214921
Test_cls_no_params_impl(TestObj *self, PyTypeObject *cls)
4922-
/*[clinic end generated code: output=8845de054449f40a input=e7e2e4e344e96a11]*/
4922+
/*[clinic end generated code: output=a6f8d26556050104 input=e7e2e4e344e96a11]*/
49234923

49244924

49254925
/*[clinic input]
@@ -5708,7 +5708,7 @@ Test__pyarg_parsestackandkeywords_impl(TestObj *self, PyTypeObject *cls,
57085708
Py_ssize_t key_length);
57095709

57105710
static PyObject *
5711-
Test__pyarg_parsestackandkeywords(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
5711+
Test__pyarg_parsestackandkeywords(PyObject *self, PyTypeObject *cls, PyObject *const *args, size_t nargs, PyObject *kwnames)
57125712
{
57135713
PyObject *return_value = NULL;
57145714
#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
@@ -5741,7 +5741,7 @@ static PyObject *
57415741
Test__pyarg_parsestackandkeywords_impl(TestObj *self, PyTypeObject *cls,
57425742
const char *key,
57435743
Py_ssize_t key_length)
5744-
/*[clinic end generated code: output=7060c213d7b8200e input=fc72ef4b4cfafabc]*/
5744+
/*[clinic end generated code: output=13887b728d0d74b2 input=fc72ef4b4cfafabc]*/
57455745

57465746

57475747
/*[clinic input]

Modules/_ctypes/clinic/_ctypes.c.h

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_io/clinic/bufferedio.c.h

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_io/clinic/bytesio.c.h

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_io/clinic/fileio.c.h

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_io/clinic/iobase.c.h

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_io/clinic/textio.c.h

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)