summaryrefslogtreecommitdiffstats
path: root/Modules/_sqlite/clinic
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2022-05-20 08:53:05 (GMT)
committerGitHub <noreply@github.com>2022-05-20 08:53:05 (GMT)
commitd8537580921b2e02f477ff1a8dedcf82c24ef0c2 (patch)
tree6f4d48893407cdbcf9d99fa6083c470995a6334a /Modules/_sqlite/clinic
parent0e12781ad9dec6e46ccb85969c0eb7be1ecad81d (diff)
downloadcpython-d8537580921b2e02f477ff1a8dedcf82c24ef0c2.zip
cpython-d8537580921b2e02f477ff1a8dedcf82c24ef0c2.tar.gz
cpython-d8537580921b2e02f477ff1a8dedcf82c24ef0c2.tar.bz2
gh-91922: Fix sqlite connection on nonstardard locales and paths (GH-92926)
Diffstat (limited to 'Modules/_sqlite/clinic')
-rw-r--r--Modules/_sqlite/clinic/connection.c.h17
1 files changed, 6 insertions, 11 deletions
diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h
index 1e27c5e..dd86fb5 100644
--- a/Modules/_sqlite/clinic/connection.c.h
+++ b/Modules/_sqlite/clinic/connection.c.h
@@ -3,9 +3,9 @@ preserve
[clinic start generated code]*/
static int
-pysqlite_connection_init_impl(pysqlite_Connection *self,
- const char *database, double timeout,
- int detect_types, const char *isolation_level,
+pysqlite_connection_init_impl(pysqlite_Connection *self, PyObject *database,
+ double timeout, int detect_types,
+ const char *isolation_level,
int check_same_thread, PyObject *factory,
int cache_size, int uri);
@@ -19,7 +19,7 @@ pysqlite_connection_init(PyObject *self, PyObject *args, PyObject *kwargs)
PyObject * const *fastargs;
Py_ssize_t nargs = PyTuple_GET_SIZE(args);
Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
- const char *database = NULL;
+ PyObject *database;
double timeout = 5.0;
int detect_types = 0;
const char *isolation_level = "";
@@ -32,9 +32,7 @@ pysqlite_connection_init(PyObject *self, PyObject *args, PyObject *kwargs)
if (!fastargs) {
goto exit;
}
- if (!clinic_fsconverter(fastargs[0], &database)) {
- goto exit;
- }
+ database = fastargs[0];
if (!noptargs) {
goto skip_optional_pos;
}
@@ -102,9 +100,6 @@ skip_optional_pos:
return_value = pysqlite_connection_init_impl((pysqlite_Connection *)self, database, timeout, detect_types, isolation_level, check_same_thread, factory, cache_size, uri);
exit:
- /* Cleanup for database */
- PyMem_Free((void *)database);
-
return return_value;
}
@@ -1236,4 +1231,4 @@ exit:
#ifndef DESERIALIZE_METHODDEF
#define DESERIALIZE_METHODDEF
#endif /* !defined(DESERIALIZE_METHODDEF) */
-/*[clinic end generated code: output=d21767843c480a10 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=fb8908674e9f25ff input=a9049054013a1b77]*/