Skip to content

Memory leak in code object lines and positions iterator  #92955

@kumaraditya303

Description

@kumaraditya303

The static types LineIterator and PositionsIterator in codeobject.c are not finalized at exit leading to memory leak.

Reproducer:

def func() -> None:
    pass

print(type(func.__code__.co_positions()).mro())
print(type(func.__code__.co_lines()).mro())

Memory leak:

[<class 'positions_iterator'>, <class 'object'>]
[<class 'line_iterator'>, <class 'object'>]
[138 refs, 54 blocks]

Metadata

Metadata

Labels

3.12only security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions