From: Erlend Egeberg Aasland Date: Fri, 15 Apr 2022 16:27:39 +0000 (+0200) Subject: gh-69093: improve sqlite3.Connection.blobopen() error handling (GH-91571) X-Git-Tag: v3.11.0b1~358 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c06a4ffe818feddef3b5083d9746a1c0b82c84ab;p=thirdparty%2FPython%2Fcpython.git gh-69093: improve sqlite3.Connection.blobopen() error handling (GH-91571) Unless sqlite3_blob_open() returns SQLITE_MISUSE, the error code and message are available on the connection object. This means we have to handle SQLITE_MISUSE error messages explicitly. --- diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 85fb128fc7f1..0028cf72f997 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -475,7 +475,11 @@ blobopen_impl(pysqlite_Connection *self, const char *table, const char *col, rc = sqlite3_blob_open(self->db, name, table, col, row, !readonly, &blob); Py_END_ALLOW_THREADS - if (rc != SQLITE_OK) { + if (rc == SQLITE_MISUSE) { + PyErr_Format(self->state->InterfaceError, sqlite3_errstr(rc)); + return NULL; + } + else if (rc != SQLITE_OK) { _pysqlite_seterror(self->state, self->db); return NULL; }