Skip to content

Struct.__init__() can leave the Struct object in inconsistent state #145743

@serhiy-storchaka

Description

@serhiy-storchaka

Since Struct.__init__() first saves the format in s_format, then sets s_code used to pack/unpack, after calling it with invalid format argument it leaves the Struct object in inconsistent state -- format returns the new (invalid) format, while packing/unpacking use old format (if it was set). This happens only when call it explicitly, which will be deprecated (see #143715). If simply call Struct() with invalid argument, you will not get a broken object, you will get an error.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    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