Bug report
Bug description:
Summary
Two leak bugs in socketmodule.c triggered when PySys_Audit raises:
getaddrinfo (line 6983): idna and/or pstr refs leaked when audit hook raises. ~657 objects leaked per 1000 calls.sock_sendto (line 4810): pbuf Py_buffer not released when audit hook raises.
Reproducer (getaddrinfo leak)
importsocket, syssys.addaudithook(lambda*a: (_for_in ()).throw(RuntimeError("audit")))
before=sys.gettotalrefcount()
foriinrange(1000):
try:
socket.getaddrinfo("localhost", 80)
exceptRuntimeError:
passafter=sys.gettotalrefcount()
print(f"Leaked {after-before} objects in 1000 calls")CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Linked PRs
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