Skip to content

Argument Clinic: vararg + kw-only crash #110864

@sobolevn

Description

@sobolevn

Bug report

Originally found in #110782 by @mxschmitt and @JelleZijlstra

This is the reproducer:

/*[clinic input] null_or_tuple_for_varargs   name: object  *constraints: object  covariant: bool = False  [clinic start generated code]*/ static PyObject * null_or_tuple_for_varargs_impl(PyObject *module, PyObject *name, PyObject *constraints, int covariant) /*[clinic end generated code: output=a785b35421358983 input=017dc120cb6e651b]*/ { assert(name != NULL); assert(constraints != NULL); assert(covariant == 0 || covariant == 1); Py_RETURN_NONE; }

When called with name=..., it crashes:

>>> import _testclinic >>> _testclinic.null_or_tuple_for_varargs('a') >>> _testclinic.null_or_tuple_for_varargs(name='a') Assertion failed: (constraints != NULL), function null_or_tuple_for_varargs_impl, file _testclinic.c, line 1148. [1] 30808 abort ./python.exe

I have a PR ready with the fix.
CC @erlend-aasland as AC maintainer.

Linked PRs

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions