[Python-checkins] r60084 - python/trunk/Python/modsupport.c
georg.brandl
python-checkins at python.org
Sat Jan 19 19:02:46 CET 2008
Author: georg.brandl
Date: Sat Jan 19 19:02:46 2008
New Revision: 60084
Modified:
python/trunk/Python/modsupport.c
Log:
#1782: don't leak in error case in PyModule_AddXxxConstant. Patch by Hrvoje Nikšić.
Modified: python/trunk/Python/modsupport.c
==============================================================================
--- python/trunk/Python/modsupport.c (original)
+++ python/trunk/Python/modsupport.c Sat Jan 19 19:02:46 2008
@@ -621,11 +621,23 @@
int
PyModule_AddIntConstant(PyObject *m, const char *name, long value)
{
- return PyModule_AddObject(m, name, PyInt_FromLong(value));
+ PyObject *o = PyInt_FromLong(value);
+ if (!o)
+ return -1;
+ if (PyModule_AddObject(m, name, o) == 0)
+ return 0;
+ Py_DECREF(o);
+ return -1;
}
int
PyModule_AddStringConstant(PyObject *m, const char *name, const char *value)
{
- return PyModule_AddObject(m, name, PyString_FromString(value));
+ PyObject *o = PyString_FromString(value);
+ if (!o)
+ return -1;
+ if (PyModule_AddObject(m, name, o) == 0)
+ return 0;
+ Py_DECREF(o);
+ return -1;
}
More information about the Python-checkins
mailing list