Skip to content

Commit

Permalink
GH-90699: disallow _Py_IDENTIFIER in core code (GH-99210)
Browse files Browse the repository at this point in the history
  • Loading branch information
kumaraditya303 committed Nov 9, 2022
1 parent c03e05c commit 6e3cc72
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
4 changes: 2 additions & 2 deletions Include/cpython/object.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ typedef struct _Py_Identifier {
Py_ssize_t index;
} _Py_Identifier;

#if defined(NEEDS_PY_IDENTIFIER) || !defined(Py_BUILD_CORE)
#ifndef Py_BUILD_CORE
// For now we are keeping _Py_IDENTIFIER for continued use
// in non-builtin extensions (and naughty PyPI modules).

#define _Py_static_string_init(value) { .string = (value), .index = -1 }
#define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value)
#define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname)

#endif /* NEEDS_PY_IDENTIFIER */
#endif /* !Py_BUILD_CORE */

typedef struct {
/* Number implementations must check *both*
Expand Down
10 changes: 8 additions & 2 deletions Programs/_testembed.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#ifndef Py_BUILD_CORE_MODULE
# define Py_BUILD_CORE_MODULE
#endif
#define NEEDS_PY_IDENTIFIER

/* Always enable assertion (even in release mode) */
#undef NDEBUG
Expand Down Expand Up @@ -1891,7 +1890,14 @@ static int test_unicode_id_init(void)
{
// bpo-42882: Test that _PyUnicode_FromId() works
// when Python is initialized multiples times.
_Py_IDENTIFIER(test_unicode_id_init);

// This is equivalent to `_Py_IDENTIFIER(test_unicode_id_init)`
// but since `_Py_IDENTIFIER` is disabled when `Py_BUILD_CORE`
// is defined, it is manually expanded here.
static _Py_Identifier PyId_test_unicode_id_init = {
.string = "test_unicode_id_init",
.index = -1,
};

// Initialize Python once without using the identifier
_testembed_Py_InitializeFromConfig();
Expand Down

0 comments on commit 6e3cc72

Please sign in to comment.