MFC program freezes: broken Comctl32.dll after updating KB3059317 on Vista?

I have an MFC-based program that worked perfectly before applying update 3059317 :

MS15-060: Vulnerability in Microsoft Common Controls Could Allow Remote Code Execution: June 9, 2015)

The update replaces Comctl32.dll with the new version.

After applying this update, opening a dialog just hangs. It seems that not all dialogs are affected, but the print preview is constantly hanging, but without crashes in the program. It just becomes immune.

I have no idea how I can try to debug this problem to find a way to solve it. Creating a memory dump when a program freezes gives the following stack trace:

 comctl32.dll!751f8505() Xxx.exe!CWnd::WindowProc(unsigned int message, unsigned int wParam, long lParam) Line 2095 + 0x13 bytes Xxx.exe!AfxCallWndProc(CWnd * pWnd, HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line 285 Xxxx.exe!AfxWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line 434 + 0x10 bytes user32.dll!76aafd72() user32.dll!76aa84de() user32.dll!76aafd72() user32.dll!76aa9f8d() ntdll.dll!77dd5a7e() user32.dll!76aaa2af() comctl32.dll!75249cfb() comctl32.dll!751fb559() user32.dll!76aafd72() user32.dll!76aafe4a() user32.dll!76ab09d3() user32.dll!76abb759() Xxx.exe!CWnd::DefWindowProcA(unsigned int nMsg, unsigned int wParam, long lParam) Line 1116 + 0x7 bytes Xxx.exe!CWnd::Default() Line 315 + 0x13 bytes Xxx.exe!CParsedEdit::OnPaint() Line 1603 Xxx.exe!CBannerEdit::OnPaint() Line 368 

So, we are really stuck in Comctl32.dll - now what?

By the way, in some cases, uninstalling the update solves the problem.

UPDATE

In all cases, shutting down Aero always solves the problem. And KB3059317 does not seem to be the only June 2015 update for Windows Vista that exhibits this strange behavior.

+5
source share
2 answers

It does not work with Areo Vista for at least one dialog in our application: the dialog is simply not colored. He is present, but he is simply not visible.

To solve the problem on Vista Aero, delete any calls to the SetRedraw() function while executing the OnInitDialog() and OnSize() methods.

It seems that SetRedraw(TRUE) has no (positive) effect, at least in these two cases.

+2
source

I have the same problem with a custom program written in .NET 4 that uses a custom version of the ListView control. The program does not freeze and generates the error "Attempted to read or write protected memory. This often indicates that another memory is damaged." After uninstalling this update, everything is fine.

0
source

All Articles