[Python-checkins] [3.9] bpo-20028: Keep original exception when PyUnicode_GetLength return -1 (GH-28832) (GH-28835)

corona10 webhook-mailer at python.org
Sat Oct 9 12:13:48 EDT 2021


https://github.com/python/cpython/commit/e4fcb6fd3dcc4db23867c2fbd538189b8f221225
commit: e4fcb6fd3dcc4db23867c2fbd538189b8f221225
branch: 3.9
author: Dong-hee Na <donghee.na at python.org>
committer: corona10 <donghee.na92 at gmail.com>
date: 2021-10-10T01:13:44+09:00
summary:

[3.9] bpo-20028: Keep original exception when PyUnicode_GetLength return -1 (GH-28832) (GH-28835)

files:
M Modules/_csv.c

diff --git a/Modules/_csv.c b/Modules/_csv.c
index 40a6361d2085f..029f473ae8741 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -246,6 +246,9 @@ _set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt
                 return -1;
             }
             Py_ssize_t len = PyUnicode_GetLength(src);
+            if (len < 0) {
+                return -1;
+            }
             if (len > 1) {
                 PyErr_Format(PyExc_TypeError,
                     "\"%s\" must be a 1-character string",
@@ -276,6 +279,9 @@ _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
                 return -1;
         }
         Py_ssize_t len = PyUnicode_GetLength(src);
+        if (len < 0) {
+            return -1;
+        }
         if (len > 1) {
             PyErr_Format(PyExc_TypeError,
                          "\"%s\" must be a 1-character string",



More information about the Python-checkins mailing list