From: "Chao Long" Subject: [PATCH v1] ole32: Check invalid parameters for ReleaseStgMedium(). Message-Id: <202009211529350915607@uniontech.com> Date: Mon, 21 Sep 2020 15:29:35 +0800 The libcef call parameters is NULL for app Evernote.exe. Wine-dbg>disas ReleaseStgMedium 0x7e240b48 ReleaseStgMedium [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: lea ecx, [esp+0x4]  0x7e240b4c ReleaseStgMedium+0x4 [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: and esp, 0xfffffff0  0x7e240b4f ReleaseStgMedium+0x7 [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: push dword [ecx-0x4]  0x7e240b52 ReleaseStgMedium+0xa [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: push ebp  0x7e240b53 ReleaseStgMedium+0xb [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: mov ebp, esp  0x7e240b55 ReleaseStgMedium+0xd [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: push ebx  0x7e240b56 ReleaseStgMedium+0xe [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: push ecx  0x7e240b57 ReleaseStgMedium+0xf [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: sub esp, 0x10  0x7e240b5a ReleaseStgMedium+0x12 [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32: mov ebx, ecx Wine-dbg>info regs Register dump:  CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b  EIP:7e240b48 ESP:00300b68 EBP:00300b74 EFLAGS:00000202(   - --  I   - - - )  EAX:1b690930 EBX:098b6178 ECX:13cd8044 EDX:1b686001  ESI:13cd8040 EDI:090fcdd4 Wine-dbg>x 0x00300b6c  0x00000000 Wine-dbg>info break Breakpoints: 1: y 0x7e240b48 ReleaseStgMedium [Z:\home\deepin\maintain5.0-stable\deepin-wine\dlls\ole32\ole2.c:2065] in ole32 (1) No watchpoints From 3dbd95d127cf17b0db8d36327d9ade7ddf7571c6 Mon Sep 17 00:00:00 2001 From: Chao Long Date: Mon, 21 Sep 2020 13:02:03 +0800 Subject: [PATCH v1] ole32: Check invalid parameters for ReleaseStgMedium(). Signed-off-by: Chao Long --- dlls/ole32/ole2.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/ole32/ole2.c b/dlls/ole32/ole2.c index 15c4f8234f..4464ba0714 100644 --- a/dlls/ole32/ole2.c +++ b/dlls/ole32/ole2.c @@ -2023,6 +2023,8 @@ found: void WINAPI ReleaseStgMedium( STGMEDIUM* pmedium) { + if (!pmedium) return; + switch (pmedium->tymed) { case TYMED_HGLOBAL: -- 2.20.1