winsiderss/systeminformer

Crash when switching to Firewall Tab

MarekKnapek opened this issue · 3 comments

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.

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: e40da6c

Changed from qsort_s to qsort but forgot to update BEGIN_SORT_FUNCTION.

fixed here: d73c32e

Fixed in version System Informer_3.0.7566 (999ab69)