Skip to content

Fix __annotations__ getters and setters in type and module #106719

Closed
@serhiy-storchaka

Description

@serhiy-storchaka

There are several issues in the code of __annotations__ getters and setters in type and module types.

  • PyDict_Contains() returns -1 on error. The code interprets it as a positive answer.
  • Calling PyDict_Contains() is not needed in all these cases at first place. Just try to get or delete an attribute and analyze the result.
  • All errors raised when accessing module.__dict__ (including MemoryError and KeyboardInterrupt) are replaced with a TypeError.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.11only security fixes3.12only security fixes3.13bugs and security fixestype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions