summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInada Naoki <songofacandy@gmail.com>2019-03-20 10:10:17 (GMT)
committerGitHub <noreply@github.com>2019-03-20 10:10:17 (GMT)
commitd5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc (patch)
treea8077a2e58dee622a9d868b3a37acc4ef744005b
parente9a1dcb4237cb2be71ab05883d472038ea9caf62 (diff)
downloadcpython-d5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc.zip
cpython-d5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc.tar.gz
cpython-d5f18a63cc2dfe8d0adec8bce384a8c569b0f3dc.tar.bz2
bpo-8677: use PY_SSIZE_T_CLEAN in PC/winreg.c (GH-12466)
-rw-r--r--PC/winreg.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/PC/winreg.c b/PC/winreg.c
index 3a6ea36..4dc4e0c 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);