From 27759315367428c6bd4bed5cf410407bd2d18fb9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lauri=20Kentt=C3=A4?= Date: Sat, 4 Feb 2017 16:38:03 +0200 Subject: [PATCH] msvcrt: Check pmode in _wsopen_dispatch. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Lauri Kenttä Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- dlls/msvcrt/file.c | 4 ++-- dlls/ucrtbase/tests/misc.c | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 896515631e4..24a6e2eb619 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -2171,8 +2171,8 @@ int CDECL MSVCRT__wsopen_dispatch( const MSVCRT_wchar_t* path, int oflags, int s if (oflags & MSVCRT__O_CREAT) { - if(pmode & ~(MSVCRT__S_IREAD | MSVCRT__S_IWRITE)) - FIXME(": pmode 0x%04x ignored\n", pmode); + if (secure && !MSVCRT_CHECK_PMT(!(pmode & ~(MSVCRT__S_IREAD | MSVCRT__S_IWRITE)))) + return MSVCRT_EINVAL; if (oflags & MSVCRT__O_EXCL) creation = CREATE_NEW; diff --git a/dlls/ucrtbase/tests/misc.c b/dlls/ucrtbase/tests/misc.c index cc820224dea..d8075ccddb5 100644 --- a/dlls/ucrtbase/tests/misc.c +++ b/dlls/ucrtbase/tests/misc.c @@ -396,11 +396,9 @@ static void test__sopen_dispatch(void) SET_EXPECT(global_invalid_parameter_handler); fd = 0; ret = p_sopen_dispatch(tempf, _O_CREAT, _SH_DENYWR, 0xff, &fd, 1); -todo_wine { ok(ret == EINVAL, "got %d\n", ret); ok(fd == -1, "got fd %d\n", fd); CHECK_CALLED(global_invalid_parameter_handler); -} if (fd > 0) { _close(fd); @@ -438,11 +436,9 @@ static void test__sopen_s(void) SET_EXPECT(global_invalid_parameter_handler); fd = 0; ret = p_sopen_s(&fd, tempf, _O_CREAT, _SH_DENYWR, 0xff); -todo_wine { ok(ret == EINVAL, "got %d\n", ret); ok(fd == -1, "got fd %d\n", fd); CHECK_CALLED(global_invalid_parameter_handler); -} p__set_invalid_parameter_handler(NULL); free(tempf); -- 2.11.4.GIT