aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Modules/_sqlite/statement.c
diff options
context:
space:
mode:
authorBénédikt Tran <10796600+picnixz@users.noreply.github.com>2025-01-31 14:33:30 +0100
committerGitHub <noreply@github.com>2025-01-31 14:33:30 +0100
commit881984b41a103b4c7fac262a00cc240ae8fbdba9 (patch)
treee0bc86b0499c1b79dbca8ea5f4b6a295642e0de3 /Modules/_sqlite/statement.c
parent9d63ae5fe52d95059ab1bcd4cbb1f9e17033c897 (diff)
downloadcpython-881984b41a103b4c7fac262a00cc240ae8fbdba9.tar.gz
cpython-881984b41a103b4c7fac262a00cc240ae8fbdba9.zip
gh-111178: fix UBSan failures in `Modules/_sqlite` (GH-129087)
* fix UBSan failures for `pysqlite_Blob` * fix UBSan failures for `pysqlite_Connection` * fix UBSan failures for `pysqlite_Cursor` * fix UBSan failures for `pysqlite_PrepareProtocol` * fix UBSan failures for `pysqlite_Row` * fix UBSan failures for `pysqlite_Statement` * suppress unused return values
Diffstat (limited to 'Modules/_sqlite/statement.c')
-rw-r--r--Modules/_sqlite/statement.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c
index 229bfc3b504..facced0dfbf 100644
--- a/Modules/_sqlite/statement.c
+++ b/Modules/_sqlite/statement.c
@@ -25,6 +25,8 @@
#include "statement.h"
#include "util.h"
+#define _pysqlite_Statement_CAST(op) ((pysqlite_Statement *)(op))
+
/* prototypes */
static const char *lstrip_sql(const char *sql);
@@ -99,10 +101,11 @@ error:
}
static void
-stmt_dealloc(pysqlite_Statement *self)
+stmt_dealloc(PyObject *op)
{
+ pysqlite_Statement *self = _pysqlite_Statement_CAST(op);
PyTypeObject *tp = Py_TYPE(self);
- PyObject_GC_UnTrack(self);
+ PyObject_GC_UnTrack(op);
if (self->st) {
Py_BEGIN_ALLOW_THREADS
sqlite3_finalize(self->st);
@@ -114,7 +117,7 @@ stmt_dealloc(pysqlite_Statement *self)
}
static int
-stmt_traverse(pysqlite_Statement *self, visitproc visit, void *arg)
+stmt_traverse(PyObject *self, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(self));
return 0;