Skip to content

_struct.Struct should be immutable, missing Py_TPFLAGS_IMMUTABLETYPE flag #94254

@kumaraditya303

Description

@kumaraditya303

In Python 3.8:

Python 3.8.12 (default, Oct 4 2021, 15:56:52)  [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import _struct >>> _struct.Struct.x = 1 Traceback (most recent call last):  File "<stdin>", line 1, in <module> TypeError: can't set attributes of built-in/extension type 'Struct' >>> 

On main:

Python 3.12.0a0 (heads/gh-94207-fix-struct-module-leak:9d41baebd0, Jun 25 2022, 07:23:49) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import _struct >>> _struct.Struct.x=1 >>> _struct.Struct.x 1

This happens because _struct.Struct is missing Py_TPFLAGS_IMMUTABLETYPE in type flags.

cc: @erlend-aasland @encukou

Metadata

Metadata

Labels

extension-modulesC modules in the Modules dirtype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions