Skip to content

Fix various crashes exposed through mro() customization #66924

@abusalimov

Description

@abusalimov
BPO 22735
Nosy @malemburg, @tim-one, @pitrou, @benjaminp
Files
  • mro-crashers-fix-v1.diff: (whole patch) fix mro() issues, crasher tests included
  • 0001-minor-test_mro-test-case-stub-and-helpers.patch: [PATCH 01/15] (minor) test_mro: test case stub and helpers
  • 0002-test-crashers-NULL-old_mro-and-over-decref-on-reent.patch: [PATCH 02/15] (test) (crashers) NULL old_mro and over-decref on reent
  • 0003-minor-mro_internal-extract-mro_invoke-and-mro_check.patch: [PATCH 03/15] (minor) mro_internal: extract mro_invoke and mro_check
  • 0004-minor-type_set_bases-move-undoing-logic-to-the-end.patch: [PATCH 04/15] (minor) type_set_bases: move undoing logic to the end
  • 0005-minor-type_set_bases-extract-add_all_subclasses.patch: [PATCH 05/15] (minor) type_set_bases: extract add_all_subclasses
  • 0006-minor-mro_subclasses-loop-over-a-list-of-subclasses.patch: [PATCH 06/15] (minor) mro_subclasses: loop over a list of subclasses
  • 0007-fix-handle-tp_mro-overwritten-through-reentrancy.patch: [PATCH 07/15] (fix) handle tp_mro overwritten through reentrancy
  • 0008-test-crashers-tp_base-tp_subclasses-inherit-cycles.patch: [PATCH 08/15] (test) (crashers) tp_base/tp_subclasses inherit-cycles
  • 0009-minor-PyType_IsSubtype-extract-a-check-using-tp_base.patch: [PATCH 09/15] (minor) PyType_IsSubtype: extract a check using tp_base
  • 0010-fix-type_set_bases-inherit-cycles-and-reent-checks.patch: [PATCH 10/15] (fix) type_set_bases: inherit-cycles and reent checks
  • 0011-test-behavior-error-on-extending-an-incomplete-type.patch: [PATCH 11/15] (test) (behavior) error on extending an incomplete type
  • 0012-minor-mro_implementation-pmerge-refactory.patch: [PATCH 12/15] (minor) mro_implementation, pmerge: refactory
  • 0013-fix-mro_implementation-check-base-tp_mro-is-not-NULL.patch: [PATCH 13/15] (fix) mro_implementation: check base->tp_mro is not NULL
  • 0014-test-crasher-attr-lookup-on-super-with-uninitialized.patch: [PATCH 14/15] (test) (crasher) attr lookup on super with uninitialized type
  • 0015-fix-super_getattro-check-type-tp_mro-and-refactory.patch: [PATCH 15/15] (fix) super_getattro: check type->tp_mro and refactory
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/benjaminp'
    closed_at = <Date 2015-02-14.17:32:53.274>
    created_at = <Date 2014-10-26.21:06:21.602>
    labels = ['interpreter-core', 'type-crash']
    title = 'Fix various crashes exposed through mro() customization'
    updated_at = <Date 2015-02-14.17:32:53.273>
    user = 'https://bugs.python.org/abusalimov'

    bugs.python.org fields:

    activity = <Date 2015-02-14.17:32:53.273>
    actor = 'berker.peksag'
    assignee = 'benjamin.peterson'
    closed = True
    closed_date = <Date 2015-02-14.17:32:53.274>
    closer = 'berker.peksag'
    components = ['Interpreter Core']
    creation = <Date 2014-10-26.21:06:21.602>
    creator = 'abusalimov'
    dependencies = []
    files = ['37025', '37026', '37027', '37028', '37029', '37030', '37031', '37032', '37033', '37034', '37035', '37036', '37037', '37038', '37039', '37040']
    hgrepos = []
    issue_num = 22735
    keywords = ['patch']
    message_count = 12.0
    messages = ['230044', '230045', '230046', '230560', '230729', '230823', '232573', '232628', '235445', '235461', '235484', '235486']
    nosy_count = 6.0
    nosy_names = ['lemburg', 'tim.peters', 'pitrou', 'benjamin.peterson', 'python-dev', 'abusalimov']
    pr_nums = []
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'crash'
    url = 'https://bugs.python.org/issue22735'
    versions = ['Python 2.7', 'Python 3.2', 'Python 3.3', 'Python 3.4', 'Python 3.5']

    Metadata

    Metadata

    Assignees

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dump

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions