Description
Reproduction steps
- download KeePass 2.23 from https://sourceforge.net/projects/keepass/files/KeePass%202.x/2.23/KeePass-2.23-Setup.exe/download
- install it
- install .NET 2 SP2
- reboot
- run KeePass
- do something that no one has a clue what it was
the reporter was Cupcaker and he used 0.4.15-dev-2790-ge8277e5 when it happened, he said he "was using another user account":
*** Fatal System Error: 0x000000c2
|
(0x00000009,0x00000002,0x00000001,0xB7C8A268)
|
|
Entered debugger on embedded INT3 at 0x0008:0x8058324B.
|
kdb:> bt
|
Eip:
|
|
<ntoskrnl.exe:18324c (srv/buildbot/worker_data/Build_GCCLin_x86/build/sdk/lib/rtl/i386/debug_asm.S:56 (RtlpBreakWithStatusInstruction))>
|
Frames:
|
|
<ntoskrnl.exe:89b21 (ntoskrnl/ke/bug.c:1066 (KeBugCheckWithTf))>
|
|
<ntoskrnl.exe:8a08b (ntoskrnl/ke/bug.c:1413 (KeBugCheckEx))>
|
|
<ntoskrnl.exe:abb1d (ntoskrnl/mm/ARM3/expool.c:431 (ExFreePoolWithTag))>
|
|
<tcpip.sys:13e42 (sdk/lib/drivers/ip/network/receive.c:114 (FreeIPDR))>
|
|
<tcpip.sys:14e09 (mnt/ramdisk/buildbot/output-MinGW-i386/sdk/include/ddk/wdm.h:11462 (IPDatagramReassemblyTimeout))>
|
|
<tcpip.sys:11604 (sdk/lib/drivers/ip/network/ip.c:135 (IPTimeoutDpcFn))>
|
|
<ntoskrnl.exe:8b7d0 (ntoskrnl/ke/dpc.c:282 (KiTimerExpiration))>
|
|
<ntoskrnl.exe:8c2c8 (ntoskrnl/ke/dpc.c:592 (KiRetireDpcList))>
|
|
<ntoskrnl.exe:1420b2 (ntoskrnl/ke/i386/thrdini.c:294 (KiIdleLoop))>
|
|
<ntoskrnl.exe:23a54a (ntoskrnl/ke/i386/kiinit.c:687 (KiSystemStartupBootStack))>
|
|
<0000000e>
|
Couldn't access memory at 0x0000E9A0!
|
Analysis
BAD_POOL_CALLER : current irql=2 (DISPATCH_LEVEL), pooltype=1 (PagedPool) => we must use NonPagedPool instead of PagedPool for the allocation. Fix is probably to change PagedPool to NonPagedPool in sdk/lib/drivers/ip/network/receive.c:218
It was aimed to be fixed by 0.4.15-dev-2793-g979b7d4