Visitar URL original
Py_XDECREF() module on fail in Py_mod_exec · Issue #90763 · python/cpython · GitHub
Skip to content

Py_XDECREF() module on fail in Py_mod_exec #90763

Description

@ov2k
mannequin
BPO 46605

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 = None
closed_at = None
created_at = <Date 2022-02-01.21:49:08.439>
labels = ['type-bug', '3.8', '3.9', '3.10', '3.11', 'extension-modules', '3.7']
title = 'Py_XDECREF() module on fail in Py_mod_exec'
updated_at = <Date 2022-02-01.21:49:08.439>
user = 'https://bugs.python.org/ov2k'

bugs.python.org fields:

activity = <Date 2022-02-01.21:49:08.439>
actor = 'ov2k'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['Extension Modules']
creation = <Date 2022-02-01.21:49:08.439>
creator = 'ov2k'
dependencies = []
files = []
hgrepos = []
issue_num = 46605
keywords = []
message_count = 1.0
messages = ['412315']
nosy_count = 1.0
nosy_names = ['ov2k']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'behavior'
url = 'https://bugs.python.org/issue46605'
versions = ['Python 3.7', 'Python 3.8', 'Python 3.9', 'Python 3.10', 'Python 3.11']

Activity

  1. ov2k commented on Feb 1, 2022

    ov2kmannequin
    MannequinAuthor

    In some of the xx modules, a Py_mod_exec function steals a reference to the module argument when an error occurs (Py_XDECREF(m) after goto fail). It's a bit pernicious given the modules' stated intent to be used as a template, although I'm not sure how often this has actually happened. At the very least, I haven't noticed this outside the xx modules.

    For Python <= 3.9, this affects xx_exec() in xxmodule.c and xx_modexec() in xxlimited.c. For Python >= 3.10, this affects xx_exec() in xxmodule.c and xx_modexec() in xxlimited_35.c.

  2. transferred this issue fromon Apr 10, 2022
  3. erlend-aasland commented on May 22, 2022

    @erlend-aasland
    Contributor

    We might as well clean up the whole init functions of those two template modules. For example, xxmodule.c does not check the return value of PyModule_AddObject (and it should use PyModule_AddType instead).

  4. added a commit that references this issue on Jun 10, 2022
  5. added a commit that references this issue on Jun 10, 2022
  6. added a commit that references this issue on Jun 10, 2022
  7. added a commit that references this issue on Jun 10, 2022
  8. added a commit that references this issue on Jun 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions