Windows 2000拡張カーネル v2.6d リリース
Windows 2000 Kernel32 改造計画【BM】
DropBox 3.12/3.14/3.16の調子がまだ悪いというので、調べてみたのですが
L10003097: mov esi,[KERNEL32.dll!LoadLibraryA] push SSZ1000A10C_ntdll_dll call esi mov ebx,[KERNEL32.dll!GetProcAddress] mov ebp,eax push SSZ1000A118_RtlIpv4AddressToStringA push ebp call ebx push SSZ1000A130_RtlIpv6AddressToStringA push ebp mov [esp+50h],eax call ebx push SSZ1000A148_iphlpapi_dll mov [esp+48h],eax call esi mov edi,eax push SSZ1000A158_GetExtendedTcpTable push edi call ebx push SSZ1000A16C_GetExtendedUdpTable push edi mov [esp+34h],eax call ebx mov esi,[KERNEL32.dll!FreeLibrary] |
psutil._psutil_windows.pyd って、古いOS用にRtlIpv4AddressToStringA などを遅延ロードして処理してるんですが、その後チェックせずに、NULLポインタをコールするようにしたため、クラッシュ→catchで処理。しかし想定してない場所でのtry/catchなので処理できず無限ループしてることが判明。
誰だよ、こんなひどいコード書いたの・ω・;
とりあえず、足りない関数実装して回避してみたけど。
なんだかなぁ・・・。
コメントより
|
どう見てもTODOですありがとうございます・ω・
TODOですw
https://github.com/giampaolo/psutil/blob/master/psutil/_psutil_windows.c#L1518
ほんとやw