[Python-checkins] bpo-32869: Fix incorrect dst buffer size for MultiByteToWideChar (GH-5739)

Miss Islington (bot) webhook-mailer at python.org
Sun Feb 18 13:40:10 EST 2018


https://github.com/python/cpython/commit/ca82e3c0ec4d0d5ce4e1ffec98cc341cb5913446
commit: ca82e3c0ec4d0d5ce4e1ffec98cc341cb5913446
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-02-18T10:40:07-08:00
summary:

bpo-32869: Fix incorrect dst buffer size for MultiByteToWideChar (GH-5739)


This function expects the destination buffer size to be given
in wide characters, not bytes.
(cherry picked from commit b3b4a9d3001f1fc7df8efcccdce081de54fa5eab)

Co-authored-by: Alexey Izbyshev <izbyshev at users.noreply.github.com>

files:
M Python/fileutils.c

diff --git a/Python/fileutils.c b/Python/fileutils.c
index 3cf8b7a8b69d..32aeea4f1037 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -1289,7 +1289,8 @@ _Py_fopen_obj(PyObject *path, const char *mode)
     if (wpath == NULL)
         return NULL;
 
-    usize = MultiByteToWideChar(CP_ACP, 0, mode, -1, wmode, sizeof(wmode));
+    usize = MultiByteToWideChar(CP_ACP, 0, mode, -1,
+                                wmode, Py_ARRAY_LENGTH(wmode));
     if (usize == 0) {
         PyErr_SetFromWindowsErr(0);
         return NULL;



More information about the Python-checkins mailing list