winsiderss / systeminformer

A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solutions, Inc. @ http://www.windows-internals.com
https://systeminformer.sourceforge.io
MIT License
10.88k stars 1.38k forks source link

Crash when switching to Firewall Tab #2024

Closed MarekKnapek closed 5 months ago

MarekKnapek commented 5 months ago

System Informer version Version: 3.0.7546 (92cd97f)

    ExtendedTools.dll!FwTreeNewCompareTimestamp(void * _context=0x0000000000001b60, const void * _elem1=0x000002603cbd0bb0, const void * _elem2=0x0000000000000008) Line 646    C   Symbols loaded.
    ExtendedTools.dll!qsort(void * base, unsigned __int64 num, unsigned __int64 width=8, int(*)(const void *, const void *) comp=0x00007ffa3f500040) Line 217   C++ Symbols loaded.
    ExtendedTools.dll!FwTreeNewCallback(HWND__ * WindowHandle=0x0000000000830996, _PH_TREENEW_MESSAGE Message, void * Parameter1=0x0000006bcef1c940, void * Parameter2, void * Context=0x0000000000000000) Line 1442    C   Symbols loaded.
    [Inline Frame] SystemInformer.exe!PhTnpGetNodeChildren(_PH_TREENEW_CONTEXT *) Line 3320 C   Symbols loaded.
    SystemInformer.exe!PhTnpRestructureNodes(_PH_TREENEW_CONTEXT * Context=0x000002603cbda780) Line 3411    C   Symbols loaded.
    [Inline Frame] SystemInformer.exe!PhTnpSetRedraw(_PH_TREENEW_CONTEXT *) Line 2426   C   Symbols loaded.
    SystemInformer.exe!PhTnpOnUserMessage(HWND__ * hwnd=0x0000000000830996, _PH_TREENEW_CONTEXT * Context=0x000002603cbda780, unsigned long Message, unsigned __int64 WParam=1, unsigned __int64 LParam=0) Line 1951    C   Symbols loaded.
    SystemInformer.exe!PhTnpWndProc(HWND__ * hwnd=0x0000000000830996, unsigned int uMsg=1055, unsigned __int64 wParam=1, __int64 lParam=0) Line 300 C   Symbols loaded.
    user32.dll!UserCallWinProcCheckWow()    Unknown Non-user code. Symbols loaded without source information.
    user32.dll!SendMessageWorker()  Unknown Non-user code. Symbols loaded without source information.
    user32.dll!SendMessageW()   Unknown Non-user code. Symbols loaded without source information.
    [Inline Frame] SystemInformer.exe!PhMwpOnUserMessage(HWND__ *) Line 2411    C   Symbols loaded.
    SystemInformer.exe!PhMwpWndProc(HWND__ * hWnd=0x00000000001802b4, unsigned int uMsg, unsigned __int64 wParam=1, __int64 lParam=140712780767392) Line 252    C   Symbols loaded.
    user32.dll!UserCallWinProcCheckWow()    Unknown Non-user code. Symbols loaded without source information.
    user32.dll!CallWindowProcW()    Unknown Non-user code. Symbols loaded without source information.
    ToolStatus.dll!MainWndSubclassProc(HWND__ * hWnd=0x00000000001802b4, unsigned int uMsg=32913, unsigned __int64 wParam=1, __int64 lParam=140712780767392) Line 1637  C   Symbols loaded.
    user32.dll!UserCallWinProcCheckWow()    Unknown Non-user code. Symbols loaded without source information.
    user32.dll!DispatchMessageWorker()  Unknown Non-user code. Symbols loaded without source information.
    user32.dll!DialogBox2(struct HWND__ *,struct HWND__ *,int,int)  Unknown Non-user code. Symbols loaded without source information.
    user32.dll!InternalDialogBox(void *,struct DLGTEMPLATE *,struct HWND__ *,__int64 (*)(struct HWND__ *,unsigned int,unsigned __int64,__int64),__int64,unsigned int)   Unknown Non-user code. Symbols loaded without source information.
    user32.dll!DialogBoxIndirectParamAorW() Unknown Non-user code. Symbols loaded without source information.
    user32.dll!DialogBoxIndirectParamW()    Unknown Non-user code. Symbols loaded without source information.
    comctl32.dll!SHFusionDialogBoxIndirectParam()   Unknown Non-user code. Symbols loaded without source information.
    comctl32.dll!CTaskDialog::Show()    Unknown Non-user code. Symbols loaded without source information.
    SystemInformer.exe!PhpUnhandledExceptionCallback(_EXCEPTION_POINTERS * ExceptionInfo=0x0000006bcef1d810) Line 757   C   Symbols loaded.
    ntdll.dll!RtlUserThreadStart$filt$0()   Unknown Non-user code. Symbols loaded without source information.
    ntdll.dll!__C_specific_handler()    Unknown Non-user code. Symbols loaded without source information.
    ntdll.dll!RtlpExecuteHandlerForException()  Unknown Non-user code. Symbols loaded without source information.
    ntdll.dll!RtlDispatchException()    Unknown Non-user code. Symbols loaded without source information.
    ntdll.dll!KiUserExceptionDispatch() Unknown Non-user code. Symbols loaded without source information.
    [Inline Frame] ExtendedTools.dll!FwUpdateNodeTimeStamp(_FW_EVENT_ITEM *) Line 441   C   Symbols loaded.
    ExtendedTools.dll!FwTreeNewCompareTimestamp(void * _context=0x0000000000001a78, const void * _elem1, const void * _elem2) Line 646  C   Symbols loaded.
    ExtendedTools.dll!qsort(void * base, unsigned __int64 num, unsigned __int64 width=8, int(*)(const void *, const void *) comp=0x00007ffa3f500040) Line 217   C++ Symbols loaded.
    ExtendedTools.dll!FwTreeNewCallback(HWND__ * WindowHandle=0x0000000000830996, _PH_TREENEW_MESSAGE Message, void * Parameter1=0x0000006bcef1ec80, void * Parameter2, void * Context=0x0000000000000000) Line 1442    C   Symbols loaded.
    [Inline Frame] SystemInformer.exe!PhTnpGetNodeChildren(_PH_TREENEW_CONTEXT *) Line 3320 C   Symbols loaded.
>   SystemInformer.exe!PhTnpRestructureNodes(_PH_TREENEW_CONTEXT * Context=0x000002603cbda780) Line 3411    C   Symbols loaded.
    [Inline Frame] SystemInformer.exe!PhTnpSetRedraw(_PH_TREENEW_CONTEXT *) Line 2426   C   Symbols loaded.
    SystemInformer.exe!PhTnpOnUserMessage(HWND__ * hwnd=0x0000000000830996, _PH_TREENEW_CONTEXT * Context=0x000002603cbda780, unsigned long Message, unsigned __int64 WParam=1, unsigned __int64 LParam=0) Line 1951    C   Symbols loaded.
    SystemInformer.exe!PhTnpWndProc(HWND__ * hwnd=0x0000000000830996, unsigned int uMsg=1055, unsigned __int64 wParam=1, __int64 lParam=0) Line 300 C   Symbols loaded.
    user32.dll!UserCallWinProcCheckWow()    Unknown Non-user code. Symbols loaded without source information.
    user32.dll!SendMessageWorker()  Unknown Non-user code. Symbols loaded without source information.
    user32.dll!SendMessageW()   Unknown Non-user code. Symbols loaded without source information.
    [Inline Frame] SystemInformer.exe!PhMwpOnUserMessage(HWND__ *) Line 2411    C   Symbols loaded.
    SystemInformer.exe!PhMwpWndProc(HWND__ * hWnd=0x00000000001802b4, unsigned int uMsg, unsigned __int64 wParam=0, __int64 lParam=140712780767392) Line 252    C   Symbols loaded.
    user32.dll!UserCallWinProcCheckWow()    Unknown Non-user code. Symbols loaded without source information.
    user32.dll!CallWindowProcW()    Unknown Non-user code. Symbols loaded without source information.
    ToolStatus.dll!MainWndSubclassProc(HWND__ * hWnd=0x00000000001802b4, unsigned int uMsg=32913, unsigned __int64 wParam=0, __int64 lParam=140712780767392) Line 1637  C   Symbols loaded.
    user32.dll!UserCallWinProcCheckWow()    Unknown Non-user code. Symbols loaded without source information.
    user32.dll!DispatchMessageWorker()  Unknown Non-user code. Symbols loaded without source information.
    SystemInformer.exe!PhMainMessageLoop() Line 346 C   Symbols loaded.
    SystemInformer.exe!wWinMain(HINSTANCE__ * Instance, HINSTANCE__ * PrevInstance=0x0000000000000000, wchar_t * CmdLine=0x0000000000000000, int CmdShow=10) Line 272   C   Symbols loaded.
    [Inline Frame] SystemInformer.exe!invoke_main() Line 118    C++ Non-user code. Symbols loaded.
    SystemInformer.exe!__scrt_common_main_seh() Line 288    C++ Non-user code. Symbols loaded.
    kernel32.dll!BaseThreadInitThunk()  Unknown Non-user code. Symbols loaded without source information.
    ntdll.dll!RtlUserThreadStart()  Unknown Non-user code. Symbols loaded without source information.
jxy-s commented 5 months ago

Looks like the firewall tab is the culprit here.

e9 00000066`092ca9c0 00007ff8`c8bef663     ntdll!KiUserExceptionDispatch+0x2e
ea 00000066`092cb148 00007ff8`c8c320e8     ExtendedTools!FwTreeNewCompareAction+0x3 [plugins\ExtendedTools\fwtab.c @ 520] 
eb 00000066`092cb150 00007ff8`c8bf05df     ExtendedTools!qsort+0x178 [minkernel\crts\ucrt\src\appcrt\stdlib\qsort.cpp @ 217] 
ec 00000066`092cb5c0 00007ff6`44afeb26     ExtendedTools!FwTreeNewCallback+0x9f [plugins\ExtendedTools\fwtab.c @ 1442] 
ed (Inline Function) --------`--------     SystemInformer!PhTnpGetNodeChildren+0x34 [phlib\treenew.c @ 3320] 
ee 00000066`092cb680 00007ff6`44afca5a     SystemInformer!PhTnpRestructureNodes+0x46 [phlib\treenew.c @ 3411] 
ef (Inline Function) --------`--------     SystemInformer!PhTnpSetRedraw+0x2b [phlib\treenew.c @ 2426] 
f0 00000066`092cb6e0 00007ff6`44afa825     SystemInformer!PhTnpOnUserMessage+0x57a [phlib\treenew.c @ 1951] 
f1 00000066`092cb770 00007ff8`f1ef8241     SystemInformer!PhTnpWndProc+0xcc5 [phlib\treenew.c @ 300] 
f2 00000066`092cb8a0 00007ff8`f1ef7a8b     USER32!UserCallWinProcCheckWow+0x2d1
0:020> dx Debugger.Sessions[0].Processes[22808].Threads[22148].Stack.Frames[234].SwitchTo();dv /t /v
Debugger.Sessions[0].Processes[22808].Threads[22148].Stack.Frames[234].SwitchTo()
@rcx              void * _context = 0x00000000`00000000
@rdx              void * _elem1 = 0x00000000`00000000
@r8               void * _elem2 = 0x00000000`00000000
<unavailable>     int sortResult = <value unavailable>
@r9               struct _FW_EVENT_ITEM * node1 = 0x00000000`00000000
<unavailable>     struct _FW_EVENT_ITEM * node2 = <value unavailable>

Introduced with this commit: https://github.com/winsiderss/systeminformer/commit/e40da6c85de0dea5c6e75ab62f5f443dcd2a3ccb

Changed from qsort_s to qsort but forgot to update BEGIN_SORT_FUNCTION.

jxy-s commented 5 months ago

fixed here: https://github.com/winsiderss/systeminformer/commit/d73c32eb4817cd9d27a833ee428c5caa86115bf5

rqueizan commented 5 months ago

Fixed in version System Informer_3.0.7566 (999ab69)