[Python-checkins] bpo-8677: use PY_SSIZE_T_CLEAN in PC/winreg.c (GH-12466)

Inada Naoki webhook-mailer at python.org
Wed Mar 20 06:10:21 EDT 2019


https://github.com/python/cpython/commit/d5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc
commit: d5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc
branch: master
author: Inada Naoki <songofacandy at gmail.com>
committer: GitHub <noreply at github.com>
date: 2019-03-20T19:10:17+09:00
summary:

bpo-8677: use PY_SSIZE_T_CLEAN in PC/winreg.c (GH-12466)

files:
M PC/winreg.c

diff --git a/PC/winreg.c b/PC/winreg.c
index 3a6ea3689fd1..4dc4e0c281bd 100644
--- a/PC/winreg.c
+++ b/PC/winreg.c
@@ -12,6 +12,7 @@
 
 */
 
+#define PY_SSIZE_T_CLEAN
 #include "Python.h"
 #include "structmember.h"
 #include "windows.h"
@@ -1608,6 +1609,11 @@ winreg_SetValue_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key,
                         "Type must be winreg.REG_SZ");
         return NULL;
     }
+    if (value_length >= INT_MAX) {
+        PyErr_SetString(PyExc_OverflowError,
+                        "the value is too long");
+        return NULL;
+    }
 
     Py_BEGIN_ALLOW_THREADS
     rc = RegSetValueW(key, sub_key, REG_SZ, value, value_length+1);



More information about the Python-checkins mailing list