From: "Chao Long" Subject: [PATCH] comctl32: Check is a safe window. Message-Id: <202010301532590115082@uniontech.com> Date: Fri, 30 Oct 2020 15:32:59 +0800 014a:014b:trace:listview:notify_hdr   <= 0 014a:014b:trace:listview:notify_dispinfoT  resulting code=-176 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=10, wParam=0, lParam=0, isW=1) 014a:014b:trace:listview:LISTVIEW_WindowProc (hwnd=00020054 uMsg=210 wParam=2 lParam=5005c) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=18, wParam=0, lParam=0, isW=1) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=46, wParam=0, lParam=303ba4, isW=1) 014a:014b:trace:listview:LISTVIEW_WindowProc (hwnd=00020054 uMsg=14 wParam=e0324 lParam=0) 014a:014b:trace:listview:LISTVIEW_EraseBkgnd (hdc=000E0324) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=47, wParam=0, lParam=303ba4, isW=1) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=210, wParam=3ec0002, lParam=30050, isW=1) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=2, wParam=0, lParam=0, isW=1) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=8, wParam=20054, lParam=0, isW=1) 014a:014b:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7d0b2b18 ip=7d0b2b18 tid=014b 014a:014b:trace:seh:raise_exception  info[0]=00000000 014a:014b:trace:seh:raise_exception  info[1]=00000074 014a:014b:trace:seh:raise_exception  eax=00000000 ebx=003047b4 ecx=00304220 edx=00000000 esi=00304eec edi=00000000 014a:014b:trace:seh:raise_exception  ebp=003046a8 esp=00304680 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206 The window is destroy. killfocus msg is not safe. 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=2, wParam=0, lParam=0, isW=1) 014a:014b:trace:listview:EditLblWndProcT (hwnd=0005005C, uMsg=8, wParam=20054, lParam=0, isW=1) From 6460c5109303e0e4c227692074d0f47f4da29756 Mon Sep 17 00:00:00 2001 From: Chao Long Date: Fri, 30 Oct 2020 15:26:00 +0800 Subject: [PATCH] comctl32: Check is a safe window. Signed-off-by: Chao Long --- dlls/comctl32/listview.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index e31c787c4a4..3726cd45665 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -5991,6 +5991,8 @@ static LRESULT EditLblWndProcT(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPara TRACE("(hwnd=%p, uMsg=%x, wParam=%lx, lParam=%lx, isW=%d)\n", hwnd, uMsg, wParam, lParam, isW); + if ( !IsWindow(hwnd) ) return 0; + switch (uMsg) { case WM_GETDLGCODE: -- 2.20.1