From 893665d1bdf6008a47f73bda145264a5cd49c4c0 Mon Sep 17 00:00:00 2001 From: neonene <53406459+neonene@users.noreply.github.com> Date: Mon, 23 May 2022 15:18:08 +0900 Subject: [PATCH 1/8] gh-92434: Silence a compiler warning in _sqlite/connection.c for 32bit version --- Modules/_sqlite/connection.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 7f7de8e709228d..4ac0078eb83c21 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -2091,7 +2091,7 @@ serialize_impl(pysqlite_Connection *self, const char *name) name); return NULL; } - PyObject *res = PyBytes_FromStringAndSize(data, size); + PyObject *res = PyBytes_FromStringAndSize(data, (Py_ssize_t)size); if (!(flags & SQLITE_SERIALIZE_NOCOPY)) { sqlite3_free((void *)data); } From 3fbf0d02bf85ed5221c756dc5c10886c4d51faa6 Mon Sep 17 00:00:00 2001 From: neonene <53406459+neonene@users.noreply.github.com> Date: Wed, 25 May 2022 06:26:02 +0900 Subject: [PATCH 2/8] check the size of serialized data --- Modules/_sqlite/connection.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 4ac0078eb83c21..48b3858d134482 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -2091,6 +2091,13 @@ serialize_impl(pysqlite_Connection *self, const char *name) name); return NULL; } +#if PY_SSIZE_T_MAX < 9223372036854775807 + if (size > PY_SSIZE_T_MAX) { + PyErr_Format(PyExc_OverflowError, + "serialized '%s' too large to convert to bytes", name); + return NULL; + } +#endif PyObject *res = PyBytes_FromStringAndSize(data, (Py_ssize_t)size); if (!(flags & SQLITE_SERIALIZE_NOCOPY)) { sqlite3_free((void *)data); From ca1810f600c5011ffb565bedfc53d49655cdc822 Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Wed, 25 May 2022 04:48:31 +0000 Subject: [PATCH 3/8] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20blu?= =?UTF-8?q?rb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst diff --git a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst new file mode 100644 index 00000000000000..7d10afb082b3fb --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst @@ -0,0 +1,2 @@ +:meth:`~sqlite3.Connection.serialize` raises :exc:`OverflowError` on 32bit Python +when more than ``Py_SSIZE_T_MAX`` bytes of serialization occurs. From 7bb93cd48e9d9f7204c2238fe98a0ddeccbacc84 Mon Sep 17 00:00:00 2001 From: neonene Date: Fri, 3 Jun 2022 05:05:55 +0900 Subject: [PATCH 4/8] Use INT_MAX, update NEWS --- .../Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst | 4 ++-- Modules/_sqlite/connection.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst index 7d10afb082b3fb..bd4d94696c9e73 100644 --- a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst +++ b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst @@ -1,2 +1,2 @@ -:meth:`~sqlite3.Connection.serialize` raises :exc:`OverflowError` on 32bit Python -when more than ``Py_SSIZE_T_MAX`` bytes of serialization occurs. +:meth:`sqlite3.Connection.serialize` now raises :exc:`OverflowError` on 32-bit +platforms if the serialized database exceeds ``Py_SSIZE_T_MAX`` bytes. diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 48b3858d134482..f7b8995448bc7b 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -2092,7 +2092,7 @@ serialize_impl(pysqlite_Connection *self, const char *name) return NULL; } #if PY_SSIZE_T_MAX < 9223372036854775807 - if (size > PY_SSIZE_T_MAX) { + if (size > INT_MAX) { PyErr_Format(PyExc_OverflowError, "serialized '%s' too large to convert to bytes", name); return NULL; From f28e454b223816912bb9b5cbe47f49c591665240 Mon Sep 17 00:00:00 2001 From: neonene <53406459+neonene@users.noreply.github.com> Date: Fri, 3 Jun 2022 14:45:42 +0900 Subject: [PATCH 5/8] correct NEWS --- .../next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst index bd4d94696c9e73..2010200e0110e2 100644 --- a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst +++ b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst @@ -1,2 +1,2 @@ :meth:`sqlite3.Connection.serialize` now raises :exc:`OverflowError` on 32-bit -platforms if the serialized database exceeds ``Py_SSIZE_T_MAX`` bytes. +platforms if the serialized database exceeds ``INT_MAX`` bytes. From 49a0f64097bcfcc35e86c0fc6f958583739fb88c Mon Sep 17 00:00:00 2001 From: neonene <53406459+neonene@users.noreply.github.com> Date: Fri, 3 Jun 2022 21:07:26 +0900 Subject: [PATCH 6/8] Remove OverflowError --- Modules/_sqlite/connection.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index f7b8995448bc7b..959683a5a5e424 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -2092,11 +2092,7 @@ serialize_impl(pysqlite_Connection *self, const char *name) return NULL; } #if PY_SSIZE_T_MAX < 9223372036854775807 - if (size > INT_MAX) { - PyErr_Format(PyExc_OverflowError, - "serialized '%s' too large to convert to bytes", name); - return NULL; - } + size = Py_MIN(size, INT_MAX); #endif PyObject *res = PyBytes_FromStringAndSize(data, (Py_ssize_t)size); if (!(flags & SQLITE_SERIALIZE_NOCOPY)) { From 3261f0c9c5ce0677856aada669be6385a5a23b22 Mon Sep 17 00:00:00 2001 From: Erlend Egeberg Aasland Date: Fri, 10 Jun 2022 09:41:06 +0200 Subject: [PATCH 7/8] Update Modules/_sqlite/connection.c --- Modules/_sqlite/connection.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 959683a5a5e424..4ac0078eb83c21 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -2091,9 +2091,6 @@ serialize_impl(pysqlite_Connection *self, const char *name) name); return NULL; } -#if PY_SSIZE_T_MAX < 9223372036854775807 - size = Py_MIN(size, INT_MAX); -#endif PyObject *res = PyBytes_FromStringAndSize(data, (Py_ssize_t)size); if (!(flags & SQLITE_SERIALIZE_NOCOPY)) { sqlite3_free((void *)data); From a158fcd9b58cd3d45a9f7bba7a87e4d55550154e Mon Sep 17 00:00:00 2001 From: Erlend Egeberg Aasland Date: Fri, 10 Jun 2022 09:41:52 +0200 Subject: [PATCH 8/8] Delete 2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst --- .../next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst diff --git a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst b/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst deleted file mode 100644 index 2010200e0110e2..00000000000000 --- a/Misc/NEWS.d/next/Library/2022-05-25-04-48-30.gh-issue-92434.ZCv8o0.rst +++ /dev/null @@ -1,2 +0,0 @@ -:meth:`sqlite3.Connection.serialize` now raises :exc:`OverflowError` on 32-bit -platforms if the serialized database exceeds ``INT_MAX`` bytes. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy