]> granicus.if.org Git - python/commitdiff
fix refleak in null-containing error case (#21147)
authorBenjamin Peterson <benjamin@python.org>
Sat, 3 Dec 2016 20:01:32 +0000 (12:01 -0800)
committerBenjamin Peterson <benjamin@python.org>
Sat, 3 Dec 2016 20:01:32 +0000 (12:01 -0800)
Modules/_sqlite/statement.c

index 04fcc5b41fbbd1ed1363ad43062f3710cf564c32..5d6263c8e66c569407c097be61ef3333b8e0d9cd 100644 (file)
@@ -74,8 +74,9 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con
         rc = PYSQLITE_SQL_WRONG_TYPE;
         return rc;
     }
-    sql_cstr = PyString_AsString(sql_str);
+    sql_cstr = PyString_AS_STRING(sql_str);
     if (strlen(sql_cstr) != (size_t)PyString_GET_SIZE(sql_str)) {
+        Py_DECREF(sql_str);
         PyErr_SetString(PyExc_ValueError, "the query contains a null character");
         return PYSQLITE_SQL_WRONG_TYPE;
     }