From f217fa26ae913da21686b1d5b381e07f69d91675 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Fri, 15 Jan 2016 11:58:41 -0600 Subject: [PATCH] MultiByteToWideChar() usage bug (fix #1072) --- src/util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/util.c b/src/util.c index 3f7cab8..7eefc66 100644 --- a/src/util.c +++ b/src/util.c @@ -48,11 +48,11 @@ void *alloca (size_t); #ifdef WIN32 FILE *fopen(const char *fname, const char *mode) { size_t sz = sizeof(wchar_t) * MultiByteToWideChar(CP_UTF8, 0, fname, -1, NULL, 0); - wchar_t *wfname = alloca(sz); + wchar_t *wfname = alloca(sz + 2); // +2 is not needed, but just in case MultiByteToWideChar(CP_UTF8, 0, fname, -1, wfname, sz); - sz = MultiByteToWideChar(CP_UTF8, 0, mode, -1, NULL, 0); - wchar_t *wmode = alloca(sz); + sz = sizeof(wchar_t) * MultiByteToWideChar(CP_UTF8, 0, mode, -1, NULL, 0); + wchar_t *wmode = alloca(sz); // +2 is not needed, but just in case MultiByteToWideChar(CP_UTF8, 0, mode, -1, wmode, sz); return _wfopen(wfname, wmode); } -- 2.40.0