From d5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 20 Mar 2019 19:10:17 +0900 Subject: [PATCH] bpo-8677: use PY_SSIZE_T_CLEAN in PC/winreg.c (GH-12466) --- PC/winreg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/PC/winreg.c b/PC/winreg.c index 3a6ea3689fd..4dc4e0c281b 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);