Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-9142

Stack corruption in SIC_LoadIcon when refreshing the desktop

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.4.0
    • Shell, Win32SS
    • None

    Description

      kd> kp
      ChildEBP RetAddr  
      00c6edd0 765d7371 shell32!Catch_RTC_Failure(int errType = 2, wchar_t * file = 0x76618e54 "unknown file", int line = 0xffffffff, wchar_t * module = 0x76618e34 "unknown module", wchar_t * format = 0x76618dfc "Stack corruption near '%s'.")+0x3 [c:\ros\reactos-clean\reactos\lib\sdk\crt\startup\mscmain.c @ 83]
      00c6ee08 7655a821 shell32!_RTC_CheckStackVars(void * _Esp = 0x00c6ee3c, struct _RTC_framedesc * _Fd = 0x7655a834)+0xc1 [c:\ros\reactos-clean\reactos\lib\sdk\runtmchk\rtcapi.c @ 133]
      00c6ee3c 7655a42b shell32!SIC_LoadIcon(wchar_t * sSourceFile = 0x00c6f0dc "C:\RosBE\rosbe.ico", int dwSourceIndex = 0, unsigned long dwFlags = 0x80)+0x211 [c:\ros\reactos-clean\reactos\dll\win32\shell32\iconcache.cpp @ 431]
      00c6f08c 7655c00b shell32!SIC_GetIconIndex(wchar_t * sSourceFile = 0x00c6f0dc "C:\RosBE\rosbe.ico", int dwSourceIndex = 0, unsigned long dwFlags = 0x80)+0x10b [c:\ros\reactos-clean\reactos\dll\win32\shell32\iconcache.cpp @ 466]
      00c6f2f4 7655c20c shell32!PidlToSicIndex(struct IShellFolder * sh = 0x00141240, struct _ITEMIDLIST * pidl = 0x0016ecd8, int bBigIcon = 0, unsigned int uFlags = 0x80, int * pIndex = 0x00c6f318)+0x14b [c:\ros\reactos-clean\reactos\dll\win32\shell32\iconcache.cpp @ 742]
      00c6f320 765a11df shell32!SHMapPIDLToSystemImageListIndex(struct IShellFolder * sh = 0x00141240, struct _ITEMIDLIST * pidl = 0x0016ecd8, int * pIndex = 0x00000000)+0xdc [c:\ros\reactos-clean\reactos\dll\win32\shell32\iconcache.cpp @ 794]
      00c6f534 7659c46e shell32!CDefView::OnNotify(unsigned int uMsg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4, int * bHandled = 0x00c6f554)+0x82f [c:\ros\reactos-clean\reactos\dll\win32\shell32\cdefview.cpp @ 1728]
      00c6f560 765a541c shell32!CDefView::ProcessWindowMessage(struct HWND__ * hWnd = 0x000400ce, unsigned int uMsg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4, long * lResult = 0x00c6f598, unsigned long dwMsgMapID = 0)+0x17e [c:\ros\reactos-clean\reactos\dll\win32\shell32\cdefview.cpp @ 299]
      00c6f5cc 7659c2ad shell32!ATL::CWindowImplBaseT<ATL::CWindow,ATL::CWinTraits<1442840576,0> >::WindowProc(struct HWND__ * hWnd = 0x000400ce, unsigned int uMsg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4)+0x9c [c:\ros\reactos-clean\reactos\lib\atl\atlwin.h @ 479]
      00c6f5f0 77a84477 shell32!CDefView::WindowProc(struct HWND__ * hWnd = 0x00142738, unsigned int uMsg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4)+0x4d [c:\ros\reactos-clean\reactos\dll\win32\shell32\cdefview.cpp @ 288]
      00c6f6ac 77a867e5 user32!IntCallWindowProcW(int IsAnsiProc = 0, <function> * WndProc = 0x00a00000, struct _WND * pWnd = 0x00345ca8, struct HWND__ * hWnd = 0x000400ce, unsigned int Msg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4)+0x417 [c:\ros\reactos-clean\reactos\win32ss\user\user32\windows\message.c @ 1490]
      00c6f6d4 77a872ed user32!IntCallMessageProc(struct _WND * Wnd = 0x00345ca8, struct HWND__ * hWnd = 0x000400ce, unsigned int Msg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4, int Ansi = 0)+0x1a5 [c:\ros\reactos-clean\reactos\win32ss\user\user32\windows\message.c @ 1730]
      00c6f754 775e96e2 user32!SendMessageW(struct HWND__ * Wnd = 0x000400ce, unsigned int Msg = 0x4e, unsigned int wParam = 1, long lParam = 0xc6f7f4)+0x11d [c:\ros\reactos-clean\reactos\win32ss\user\user32\windows\message.c @ 2339]
      00c6f770 775f388f comctl32!notify_hdr(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, int code = 0xffffff4f, struct tagNMHDR * pnmh = 0x00c6f7f4)+0x92 [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 810]
      00c6f7b4 775f5a30 comctl32!notify_dispinfoT(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, unsigned int code = 0xffffff4f, struct tagLVDISPINFOW * pdi = 0x00c6f7f4, int isW = 1)+0x22f [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 958]
      00c6f848 775e9752 comctl32!LISTVIEW_GetItemT(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct tagLVITEMW * lpLVItem = 0x00c6f87c, int isW = 1)+0x5d0 [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 6812]
      00c6f85c 775f04bc comctl32!LISTVIEW_GetItemW(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct tagLVITEMW * lpLVItem = 0x00c6f87c)+0x12 [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 1678]
      00c6fb54 7760066f comctl32!LISTVIEW_DrawItem(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct HDC__ * hdc = 0x03010183, int nItem = 5, struct tagITERATOR * subitems = 0x00000000, struct tagPOINT pos = struct tagPOINT, unsigned int cdmode = 0)+0x11c [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 4713]
      00c6fb98 775ff4af comctl32!LISTVIEW_RefreshList(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct tagITERATOR * i = 0x00c6fbec, struct HDC__ * hdc = 0x03010183, unsigned int cdmode = 0)+0x9f [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 5095]
      00c6fca4 775fee80 comctl32!LISTVIEW_Refresh(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct HDC__ * hdc = 0x03010183, struct tagRECT * prcErase = 0x00000000)+0x5df [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 5201]
      00c6fd04 775fed4d comctl32!LISTVIEW_Paint(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct HDC__ * hdc = 0x03010183)+0x120 [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 10654]
      00c6fd14 775e88ab comctl32!LISTVIEW_WMPaint(struct tagLISTVIEW_INFO * infoPtr = 0x00142818, struct HDC__ * hdc = 0x00000000)+0x7d [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 10679]
      00c6fd3c 77a84477 comctl32!LISTVIEW_WindowProc(struct HWND__ * hwnd = 0x000300d0, unsigned int uMsg = 0xf, unsigned long wParam = 0, long lParam = 0)+0xd4b [c:\ros\reactos-clean\reactos\dll\win32\comctl32\listview.c @ 11690]
      00c6fdf8 77a882c3 user32!IntCallWindowProcW(int IsAnsiProc = 0, <function> * WndProc = 0x775e7b60, struct _WND * pWnd = 0x00345d98, struct HWND__ * hWnd = 0x000300d0, unsigned int Msg = 0xf, unsigned int wParam = 0, long lParam = 0)+0x417 [c:\ros\reactos-clean\reactos\win32ss\user\user32\windows\message.c @ 1490]
      00c6fe84 7c92fae1 user32!User32CallWindowProcFromKernel(void * Arguments = 0x00c6fe9c, unsigned long ArgumentLength = 0x20)+0x1f3 [c:\ros\reactos-clean\reactos\win32ss\user\user32\windows\message.c @ 2920]
      00c6ff04 7654991b ntdll!KiUserCallbackDispatcher+0x2e
      00c6ff48 7654a2b8 shell32!CDesktopBrowser::MessageLoop(void)+0x7b [c:\ros\reactos-clean\reactos\dll\win32\shell32\cdesktopbrowser.cpp @ 386]
      00c6ff54 0040283b shell32!SHDesktopMessageLoop(void * hDesktop = 0x00141648)+0x38 [c:\ros\reactos-clean\reactos\dll\win32\shell32\cdesktopbrowser.cpp @ 620]
      00c6ff70 004014b1 explorer!_SHDesktopMessageLoop(void * hDesktop = 0x00141648)+0x9b [c:\ros\reactos-clean\reactos\base\shell\explorer\rshell.cpp @ 111]
      00c6ffb0 004013cb explorer!CDesktopThread::DesktopThreadProc(void)+0xd1 [c:\ros\reactos-clean\reactos\base\shell\explorer\desktop.cpp @ 54]
      00c6ffb8 77da2c0d explorer!CDesktopThread::s_DesktopThreadProc(void * lpParameter = 0x00140948)+0xb [c:\ros\reactos-clean\reactos\base\shell\explorer\desktop.cpp @ 62]
      00c6ffec 00000000 kernel32!BaseThreadStartup(<function> * lpStartAddress = 0x004013c0, void * lpParameter = 0x00140948)+0x5d [c:\ros\reactos-clean\reactos\dll\win32\kernel32\client\thread.c @ 69]

      PrivateExtractIconW is writing out two icons even though only one is requested

      Attachments

        Activity

          People

            ThFabba ThFabba
            ThFabba ThFabba
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: