Re: [HACKERS] Fix for segfault in plpython's exception handling

Поиск
Список
Период
Сортировка
Искать
От
Tom Lane
Тема
Re: [HACKERS] Fix for segfault in plpython's exception handling
Дата
Msg-id
17995.1481299107@sss.pgh.pa.us
Ответ на
Список
Дерево обсуждения
[HACKERS] Fix for segfault in plpython's exception handling Rafa de la Torre <rtorre@carto.com>
Re: [HACKERS] Fix for segfault in plpython's exception handling Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Fix for segfault in plpython's exception handling Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] Fix for segfault in plpython's exception handling Rafa de la Torre <rtorre@carto.com>
Re: [HACKERS] Fix for segfault in plpython's exception handling Rafa de la Torre <rafael.delatorre.vega@gmail.com>
Rafa de la Torre  writes:
>  		exc = PyErr_NewException(exception_map[i].name, base, dict);
> +		Py_INCREF(exc);
>  		PyModule_AddObject(mod, exception_map[i].classname, exc);

Hm.  Seems like if this is a problem, the code for the other three
exceptions is being a bit careless: it does do Py_INCREFs on them,
but not soon enough to ensure no problems.  Also, I wonder why that
code checks for a null result from PyErr_NewException but this doesn't.

Good catch though.  A naive person would have assumed that
PyModule_AddObject would increment the object's refcount, but
the Python docs say "This steals a reference to value", which
I guess must mean that the caller is required to do it.
		regards, tom lane


В списке pgsql-hackers по дате отправления
От: David G. Johnston
Дата:
От: Peter Eisentraut
Дата:
FAQ