Skip to content

Bugs in asyncio.Future.remove_done_callback() cause segfault.#97592

@xiaxinmeng

Description

@xiaxinmeng

Crash report

The following example triggers a segfault on the latest stable Python3.8.14. I think there might be a bug in asyncio.Future.remove_done_callback().

import asyncio fut = asyncio.Future() fut.add_done_callback(str) for str in range(63): fut.add_done_callback(id) class evil: def __eq__(self, other): fut.remove_done_callback(other) fut.remove_done_callback(evil()) 

Error messages

Segmentation fault (core dumped)

Your environment

  • CPython versions tested on: Python 3.8.14, Python 3.9.0, main branch 68c46ae
  • Operating system and architecture: [GCC 7.5.0] on linux

Metadata

Metadata

Assignees

Labels

3.10only security fixes3.11only security fixes3.12only security fixestopic-asynciotype-crashA hard crash of the interpreter, possibly with a core dump

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions