[issue30081] Inconsistent handling of failure of PyModule_AddObject
Xiang Zhang
report at bugs.python.org
Sun Apr 16 12:22:37 EDT 2017
New submission from Xiang Zhang:
The doc of PyModule_AddObject()[1] states it steals a reference to *value*. But this is only the case when it succeed. On failure the reference is not stolen.
The usages of it across the code base are inconsistent. Some realizes this situation and depends on it: [2]. Some doesn't realize: [3]. Most just assume it always succeeds: [4].
BTW, it seems many modules doesn't release memories well in failure situations in their PyMOD_INIT. Maybe I miss some post-handling procedures?
[1] https://docs.python.org/3/c-api/module.html#c.PyModule_AddObject
[2] https://github.com/python/cpython/blob/master/Python/modsupport.c#L644
[3] https://github.com/python/cpython/blob/master/Modules/gcmodule.c#L1590
[4] https://github.com/python/cpython/blob/master/Modules/_datetimemodule.c#L5799
----------
messages: 291750
nosy: xiang.zhang
priority: normal
severity: normal
status: open
title: Inconsistent handling of failure of PyModule_AddObject
type: behavior
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue30081>
_______________________________________
More information about the Python-bugs-list
mailing list