diff options
author | Bénédikt Tran <10796600+picnixz@users.noreply.github.com> | 2025-01-31 14:33:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-31 14:33:30 +0100 |
commit | 881984b41a103b4c7fac262a00cc240ae8fbdba9 (patch) | |
tree | e0bc86b0499c1b79dbca8ea5f4b6a295642e0de3 /Modules/_sqlite/statement.c | |
parent | 9d63ae5fe52d95059ab1bcd4cbb1f9e17033c897 (diff) | |
download | cpython-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.c | 9 |
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; |