-
Notifications
You must be signed in to change notification settings - Fork 262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uninit reads below SetupDiGetClassDevsW #503
Comments
From timurrrr@google.com on July 21, 2011 03:31:54 On Win7 the stack looks slightly different: [w/o symbols] |
From bruen...@google.com on July 21, 2011 09:52:49 you mention NtUser syscalls -- which ones do you see that you suspect? maybe you can investigate this one further. Owner: timurrrr@google.com |
From bruen...@google.com on July 21, 2011 12:02:46 I'll take it Owner: bruen...@google.com |
From bruen...@google.com on July 21, 2011 14:03:57 what I see on win7 looks like issue #486 : uninit arg value. it's argnum=3 == TokenInformationLength 0:000> dds @@(mc->esp) setupapi!pSetupRestoreThreadPrivileges+0x9b: preceded by: and size arg (probably same 0x24) setupapi!pSetupRestoreThreadPrivileges+0x5e: system call 30 NtQueryInformationToken failed with 0xc0000023
|
From bruen...@google.com on July 21, 2011 19:20:07 this one looks like a real bug since the UNICODE_STRING Buffer should 0:000> dt us ole32!CheckRefresh+0x5f: ebp-0x1c == Buffer ebp+0x10 == 3rd param to CheckRefresh it's 00623958 00623958 is the start of the malloc the question is, is this a bug, or should my UNICODE_STRING handler just **** UNINITs from NtAlpcSendWaitReceivePort? the other uninits may be from NtAlpcSendWaitReceivePort which is part of issue #98 % grep -E '^Error|NtAlpc' on XP that syscall doesn't exist, but it looks like it's doing something |
From timurrrr@google.com on July 22, 2011 08:21:29 Re: NtQueryInformationToken |
From bruen...@google.com on August 02, 2011 11:51:07 I put in some fixes for issue #92 , issue #529 , and issue #486 that on win7 the only uninit I still see is split as issue #535 on xp64 I still see these on the issue #499 test app: Error I thought the data might come from here: WARNING: unknown ioctl 0x390008 => op 2 #define FILE_DEVICE_KSEC 0x00000039 kernel driver confirms that we're not missing any kernel write manual inspection also shows random bytes written up to exactly 0x100 RPCRT4!rc4_key: +0x014 xbx : 0x76 0:000> dd @@(mc->ebp) native: 0044f2fd 8b44241c mov eax,[esp+0x1c] edi came from: full: |
From bruen...@google.com on August 02, 2011 11:51:07 ...ov [esi+ecx],bl looking more and more like bit manip: not clear yet whether would be fixed |
From timurrrr@google.com on August 02, 2011 11:55:31
|
From bruen...@google.com on August 02, 2011 12:50:15 rc4_key is issue #511 left here on xp64 are: Error Error Error Error have not looked at xp32 |
From timurrrr@google.com on July 21, 2011 06:10:44
Repro taken from issue #499 :
#include <windows.h>
#include <dshow.h>
#include <stdio.h>
#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "strmiids.lib")
class ScopedCOMInitializer {
public:
ScopedCOMInitializer() : hr_(CoInitialize(NULL)) { }
private:
HRESULT hr_;
};
int main() {
ScopedCOMInitializer sci;
}
[XP 32-bit with symbols]
Error
#1
: UNINITIALIZED READ: reading register eax@0:00:05.626 in thread 4280
0x7792b4c6 <SETUPAPI.dll+0xb4c6> SETUPAPI.dll!SetupDiGetClassDevsExW
0x7792b604 <SETUPAPI.dll+0xb604> SETUPAPI.dll!SetupDiGetClassDevsW
0x75f49bf7 <DEVENUM.DLL+0x9bf7> DEVENUM.DLL!CEnumInterfaceClass::GetDevicePath
0x75f47588 <DEVENUM.DLL+0x7588> DEVENUM.DLL!CCreateSwEnum::CreateOnePnpMoniker
0x75f4769d <DEVENUM.DLL+0x769d> DEVENUM.DLL!CCreateSwEnum::CreatePnpMonikers
0x75f4837d <DEVENUM.DLL+0x837d> DEVENUM.DLL!CCreateSwEnum::CreateClassEnumerator
0x75f442c4 <DEVENUM.DLL+0x42c4> DEVENUM.DLL!CClassManagerBase::CreateClassEnumerator
0x75f48344 <DEVENUM.DLL+0x8344> DEVENUM.DLL!CCreateSwEnum::CreateClassEnumerator
0x75f46e0e <DEVENUM.DLL+0x6e0e> DEVENUM.DLL!CCreateSwEnum::CreateClassEnumerator
0x00401099 <test.exe+0x1099> test.exe!main
test.cpp:34
...
Error
#3
: UNINITIALIZED READ: reading 0x00185d82-0x00185d84 2 byte(s)@0:00:05.673 in thread 4280
0x10038293 <drmemorylib.dll+0x38293> drmemorylib.dll!replace_wcslen
drmemory\replace.c:323
0x7792cfc7 <SETUPAPI.dll+0xcfc7> SETUPAPI.dll!OpenDeviceInterfaceSubKey
0x7792d19c <SETUPAPI.dll+0xd19c> SETUPAPI.dll!pSetupGetDevInstNameAndStatusForInterfaceDevice
0x7792d481 <SETUPAPI.dll+0xd481> SETUPAPI.dll!SetupDiGetClassDevsExW
0x7792b604 <SETUPAPI.dll+0xb604> SETUPAPI.dll!SetupDiGetClassDevsW
<same stack as
#1
below>[XP 32-bits w/o symbols]
Error
#2
: UNINITIALIZED READ: reading register eax@0:00:04.035 in thread 5720
0x7792b4c6 <SETUPAPI.dll+0xb4c6> SETUPAPI.dll!SetupDiGetClassDevsExW
0x7792b604 <SETUPAPI.dll+0xb604> SETUPAPI.dll!SetupDiGetClassDevsW
0x75f49bf7 <DEVENUM.DLL+0x9bf7> DEVENUM.DLL!DllUnregisterServer
0x75f47588 <DEVENUM.DLL+0x7588> DEVENUM.DLL!DllUnregisterServer
0x75f4769d <DEVENUM.DLL+0x769d> DEVENUM.DLL!DllUnregisterServer
0x75f4837d <DEVENUM.DLL+0x837d> DEVENUM.DLL!DllUnregisterServer
0x75f442c4 <DEVENUM.DLL+0x42c4> DEVENUM.DLL!?
0x75f48344 <DEVENUM.DLL+0x8344> DEVENUM.DLL!DllUnregisterServer
0x75f46e0e <DEVENUM.DLL+0x6e0e> DEVENUM.DLL!DllUnregisterServer
0x00401099 <test.exe+0x1099> test.exe!main
test.cpp:34
...
Error
#4
: UNINITIALIZED READ: reading 0x00185d82-0x00185d84 2 byte(s)@0:00:04.067 in thread 5720
0x10038293 <drmemorylib.dll+0x38293> drmemorylib.dll!replace_wcslen
drmemory\replace.c:323
0x7792cfc7 <SETUPAPI.dll+0xcfc7> SETUPAPI.dll!SetupDiEnumDeviceInterfaces
0x7792d19c <SETUPAPI.dll+0xd19c> SETUPAPI.dll!SetupDiEnumDeviceInterfaces
0x7792d481 <SETUPAPI.dll+0xd481> SETUPAPI.dll!SetupDiEnumDeviceInterfaces
0x7792b604 <SETUPAPI.dll+0xb604> SETUPAPI.dll!SetupDiGetClassDevsW
<same stack as Error
#2
below>Looks like some NtUser syscall doesn't initialize some of its OUT fields?
Original issue: http://code.google.com/p/drmemory/issues/detail?id=503
The text was updated successfully, but these errors were encountered: