From: Georg Brandl Date: Sun, 25 Nov 2007 00:45:05 +0000 (+0000) Subject: #1480: fix refleak in the sqlite module. X-Git-Tag: v3.0a2~95 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ceab6104694c56dc31926af149cbe133988f9574;p=thirdparty%2FPython%2Fcpython.git #1480: fix refleak in the sqlite module. It came from rev 58682. The reason is that PyString_Concat and PyUnicode_Concat work differently -- the equivalent to PyString_Concat is PyUnicode_Append. --- diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index d4318deec047..b6f64924922c 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -806,6 +806,7 @@ static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, Py { PyObject* res; PyObject* begin_statement; + static PyObject* begin_word; Py_XDECREF(self->isolation_level); @@ -832,11 +833,11 @@ static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, Py Py_INCREF(isolation_level); self->isolation_level = isolation_level; - begin_statement = PyUnicode_FromString("BEGIN "); - if (!begin_statement) { - return -1; + if (!begin_word) { + begin_word = PyUnicode_FromString("BEGIN "); + if (!begin_word) return -1; } - PyUnicode_Concat(begin_statement, isolation_level); + begin_statement = PyUnicode_Concat(begin_word, isolation_level); if (!begin_statement) { return -1; }