We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Two leak bugs in socketmodule.c triggered when PySys_Audit raises:
socketmodule.c
PySys_Audit
getaddrinfo
idna
pstr
sock_sendto
pbuf
import socket, sys sys.addaudithook(lambda *a: (_ for _ in ()).throw(RuntimeError("audit"))) before = sys.gettotalrefcount() for i in range(1000): try: socket.getaddrinfo("localhost", 80) except RuntimeError: pass after = sys.gettotalrefcount() print(f"Leaked {after - before} objects in 1000 calls")
CPython main branch
No response
Bug report
Bug description:
Summary
Two leak bugs in
socketmodule.ctriggered whenPySys_Auditraises:getaddrinfo(line 6983):idnaand/orpstrrefs leaked when audit hook raises. ~657 objects leaked per 1000 calls.sock_sendto(line 4810):pbufPy_buffer not released when audit hook raises.Reproducer (getaddrinfo leak)
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Linked PRs