Skip to content
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

False reports when using SHFileOperation #12

Open
derekbruening opened this issue Nov 28, 2014 · 7 comments
Open

False reports when using SHFileOperation #12

derekbruening opened this issue Nov 28, 2014 · 7 comments

Comments

@derekbruening
Copy link
Contributor

From timurrrr@google.com on July 22, 2010 06:40:15

On Windows XP, the following code gives 200+ reports:

#include <windows.h>
#include <shellapi.h>

#pragma comment(lib, "shell32.lib")

int main(void) {
SHFILEOPSTRUCT file_operation = {0};
file_operation.wFunc = FO_DELETE;
file_operation.pFrom = "test.txt\0\0";
file_operation.fFlags = FOF_NOERRORUI | FOF_SILENT | FOF_NOCONFIRMATION;
file_operation.fFlags |= FOF_NORECURSION | FOF_FILESONLY;
SHFileOperation(&file_operation);
return 0;
}

cl test.c
help more >test.txt || drmemory.exe -- test.exe

Sample report file is attached.

Attachment: results.txt

Original issue: http://code.google.com/p/drmemory/issues/detail?id=12

@derekbruening
Copy link
Contributor Author

From timurrrr@google.com on July 22, 2010 03:49:39

Half of the reports can be suppressed by the following suppression:
UNINITIALIZED READ
ntdll.dll!Rtl*
ntdll.dll!Rtl*
ntdll.dll!RtlFindActivationContextSectionString

@derekbruening
Copy link
Contributor Author

From timurrrr@google.com on August 04, 2010 07:15:18

Labels: Bug-FalsePositive

@derekbruening
Copy link
Contributor Author

From timurrrr@google.com on January 18, 2011 07:32:10

This is likely related: http://build.chromium.org/p/chromium.fyi/builders/Windows%20Tests%20(DrMemory)/builds/1514/steps/memory%20test:%20remoting/logs/stdio POSSIBLE LEAK 132 direct bytes 0x00211df0-0x00211e74 + 1296 indirect bytes

1 0x77e781f9 I_RpcBCacheFree RPCRT4.dll

2 0x77e781d0 I_RpcBCacheFree RPCRT4.dll

3 0x77e7d232 NdrConformantArrayFree RPCRT4.dll

4 0x77e7e8df RpcBindingFromStringBindingW RPCRT4.dll

5 0x77de0b13 GetSidIdentifierAuthority ADVAPI32.dll

6 0x77de1e0d GetSidIdentifierAuthority ADVAPI32.dll

7 0x77e7ec3a RpcStringBindingComposeW RPCRT4.dll

8 0x77e7ec67 RpcStringBindingComposeW RPCRT4.dll

9 0x77ef558d NdrClientCall2 RPCRT4.dll

#10 0x77de1ee8 LsaOpenPolicy ADVAPI32.dll
#11 0x77de1e6a LsaOpenPolicy ADVAPI32.dll
#12 0x77de5788 LookupAccountSidW ADVAPI32.dll
#13 0x77de5728 LookupAccountSidW ADVAPI32.dll
#14 0x769c8588 DestroyEnvironmentBlock USERENV.dll
#15 0x769c853e DestroyEnvironmentBlock USERENV.dll
#16 0x769c7752 ExpandEnvironmentStringsForUserW USERENV.dll
#17 0x77f70390 StrRChrA SHLWAPI.dll
#18 0x7ca4b3a1 SHCreateQueryCancelAutoPlayMoniker SHELL32.dll
#19 0x7c9ef3e0 SHGetFolderPathW SHELL32.dll
#20 0x7c9ef2f1 SHGetFolderPathW SHELL32.dll
#21 0x7c9ef20c Ordinal78 SHELL32.dll
#22 0x7caba81c Ordinal720 SHELL32.dll
#23 0x7ca70dc6 SHFileOperation SHELL32.dll
#24 0x7ca71311 SHFileOperation SHELL32.dll
#25 0x7ca713de SHFileOperation SHELL32.dll
#26 0x7ca6d79e SHCreateDirectoryExA SHELL32.dll
#27 0x7ca7052d SHCreateDirectoryExA SHELL32.dll
#28 0x7ca70a5f SHFileOperationW SHELL32.dll
#29 0x0074cef0 file_util::Delete base\file_util_win.cc:152
#30 0x0074c33c ScopedTempDir::Delete base\scoped_temp_dir.cc:65

@derekbruening
Copy link
Contributor Author

From timurrrr@google.com on August 29, 2011 07:31:45

On Windows 7, this test gives 19 reports:
Error #1: UNINITIALIZED READ: reading register eax
Note: instruction: test %eax %eax
0x764ff38a <SHELL32.dll+0x4f38a> SHELL32.dll!CFileSysItemString::_GetExtensionFlags
0x764ff1f4 <SHELL32.dll+0x4f1f4> SHELL32.dll!CFileExtension::_EnsureClassFlags
0x765515d7 <SHELL32.dll+0xa15d7> SHELL32.dll!CFileSysItemString::ClassFlags
0x76537e7b <SHELL32.dll+0x87e7b> SHELL32.dll!CFSFolder::GetAttributesOf

Error #2: UNINITIALIZED READ: reading 0x0286f984-0x0286f988 4 byte(s)
Note: instruction: test 0x70(%esi) $0x00000400
0x7713c157 <RPCRT4.dll+0x1c157> RPCRT4.dll!NdrConformantVaryingArrayUnmarshall
0x771d015a <RPCRT4.dll+0xb015a> RPCRT4.dll!_imp__RegSetValueExW
0x75a4554e <CFGMGR32.dll+0x554e> CFGMGR32.dll!PNP_GetInterfaceDeviceList
0x75a454e6 <CFGMGR32.dll+0x54e6> CFGMGR32.dll!CM_Get_Device_Interface_List_ExW
0x76500403 <SHELL32.dll+0x50403> SHELL32.dll!CMountPoint::_EnumVolumesNonPrimaryProcess
0x76500365 <SHELL32.dll+0x50365> SHELL32.dll!CMountPoint::_InitLocalDriveHelperAsync
0x75cbb6cf <SHLWAPI.dll+0x1b6cf> SHLWAPI.dll!ExecuteWorkItemThreadProc
0x77aa8717 <ntdll.dll+0x68717> ntdll.dll!RtlpTpWorkCallback
0x77a85504 <ntdll.dll+0x45504> ntdll.dll!TppWorkerThread

Error #3: UNINITIALIZED READ: reading register eax
Note: instruction: test %eax %eax
0x764ff38a <SHELL32.dll+0x4f38a> SHELL32.dll!CFileSysItemString::_GetExtensionFlags
0x765515d7 <SHELL32.dll+0xa15d7> SHELL32.dll!CFileSysItemString::ClassFlags
0x765520cf <SHELL32.dll+0xa20cf> SHELL32.dll!CFSFolder::_GetBindCLSID
0x76551dfa <SHELL32.dll+0xa1dfa> SHELL32.dll!CFSFolder::_Bind
0x76551c8c <SHELL32.dll+0xa1c8c> SHELL32.dll!CFSFolder::BindToObject
0x7653ece5 <SHELL32.dll+0x8ece5> SHELL32.dll!CShellItem::_BindToHandlerLegacy
0x7653d810 <SHELL32.dll+0x8d810> SHELL32.dll!CShellItem::BindToHandler
0x7650559c <SHELL32.dll+0x5559c> SHELL32.dll!CRecursiveFolderOperation::Prepare
0x765098d0 <SHELL32.dll+0x598d0> SHELL32.dll!CFileOperation::PrepareAndDoOperations
0x76509819 <SHELL32.dll+0x59819> SHELL32.dll!SHFileOperationWithAdditionalFlags
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe!main
c:\sandbox\12\test.cpp:12

Error #4: UNINITIALIZED READ: reading register eax
Note: instruction: test %eax %eax
0x764ff38a <SHELL32.dll+0x4f38a> SHELL32.dll!CFileSysItemString::_GetExtensionFlags
0x764ffec4 <SHELL32.dll+0x4fec4> SHELL32.dll!CFileExtension::_EnsureClassFlags
0x765515d7 <SHELL32.dll+0xa15d7> SHELL32.dll!CFileSysItemString::ClassFlags
0x765520cf <SHELL32.dll+0xa20cf> SHELL32.dll!CFSFolder::_GetBindCLSID
0x76551dfa <SHELL32.dll+0xa1dfa> SHELL32.dll!CFSFolder::_Bind
0x76551c8c <SHELL32.dll+0xa1c8c> SHELL32.dll!CFSFolder::BindToObject
0x7653ece5 <SHELL32.dll+0x8ece5> SHELL32.dll!CShellItem::_BindToHandlerLegacy
0x7653d810 <SHELL32.dll+0x8d810> SHELL32.dll!CShellItem::BindToHandler
0x7650559c <SHELL32.dll+0x5559c> SHELL32.dll!CRecursiveFolderOperation::Prepare
0x765098d0 <SHELL32.dll+0x598d0> SHELL32.dll!CFileOperation::PrepareAndDoOperations
0x76509819 <SHELL32.dll+0x59819> SHELL32.dll!SHFileOperationWithAdditionalFlags
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe!main
c:\sandbox\12\test.cpp:12

Error #5: UNINITIALIZED READ: reading 0x00305bd4-0x00305bd5 1 byte(s) within 0x00305bd4-0x00305bd8
Note: instruction: cmp 0x74(%ecx) %eax
0x764bbef9 <SHELL32.dll+0xbef9> SHELL32.dll!CCopyWorkItem::_QueryRecycleOrNuke
0x764bc5c2 <SHELL32.dll+0xc5c2> SHELL32.dll!CCopyWorkItem::_UpFrontDelete
0x7670bab8 <SHELL32.dll+0x25bab8> SHELL32.dll!CCopyWorkItem::UpFrontFileDelete
0x76503d83 <SHELL32.dll+0x53d83> SHELL32.dll!CFileOperation::_EnumRootPrepare
0x765098d0 <SHELL32.dll+0x598d0> SHELL32.dll!CFileOperation::PrepareAndDoOperations
0x76509819 <SHELL32.dll+0x59819> SHELL32.dll!SHFileOperationWithAdditionalFlags
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe!main
c:\sandbox\12\test.cpp:12

Error #6: LEAK 12 direct bytes 0x0031a1b0-0x0031a1bc + 0 indirect bytes
0x77a91862 <ntdll.dll+0x51862> ntdll.dll!LdrpSearchResourceSection_U
0x77a9c481 <ntdll.dll+0x5c481> ntdll.dll!LdrpGetRcConfig
0x77a818de <ntdll.dll+0x418de> ntdll.dll!LdrIsResItemExist
0x77a8175e <ntdll.dll+0x4175e> ntdll.dll!LdrpSearchResourceSection_U
0x77a83e5f <ntdll.dll+0x43e5f> ntdll.dll!RtlLoadString
0x76364095 <KERNELBASE.dll+0x14095> KERNELBASE.dll!LoadStringBaseExW
0x773a7c2b <USER32.dll+0x17c2b> USER32.dll!LoadStringW
0x75f4c3c6 <SETUPAPI.dll+0xc3c6> SETUPAPI.dll!MyLoadString
0x75f49829 <SETUPAPI.dll+0x9829> SETUPAPI.dll!MemoryInitializeEx
0x75f4cdaf <SETUPAPI.dll+0xcdaf> SETUPAPI.dll!ProcessAttach
0x75f4cc65 <SETUPAPI.dll+0xcc65> SETUPAPI.dll!DllMain
0x75f41875 <SETUPAPI.dll+0x1875> SETUPAPI.dll!_CRT_INIT
0x77a79960 <ntdll.dll+0x39960> ntdll.dll!LdrpCallInitRoutine
0x77a7d8c9 <ntdll.dll+0x3d8c9> ntdll.dll!LdrpRunInitializeRoutines
0x77a7d78c <ntdll.dll+0x3d78c> ntdll.dll!LdrpLoadDll
0x77a7c4e5 <ntdll.dll+0x3c4e5> ntdll.dll!LdrLoadDll
0x76362288 <KERNELBASE.dll+0x12288> KERNELBASE.dll!LoadLibraryExW
0x763622e5 <KERNELBASE.dll+0x122e5> KERNELBASE.dll!LoadLibraryExA
0x7652a2b6 <SHELL32.dll+0x7a2b6> SHELL32.dll!__delayLoadHelper2
0x764ffb61 <SHELL32.dll+0x4fb61> SHELL32.dll!_tailMerge_SETUPAPI_dll
0x76500365 <SHELL32.dll+0x50365> SHELL32.dll!CMountPoint::_InitLocalDriveHelperAsync
0x77aa8746 <ntdll.dll+0x68746> ntdll.dll!RtlpTpWorkCallback
0x77a85504 <ntdll.dll+0x45504> ntdll.dll!TppWorkerThread
0x75623677 <KERNEL32.dll+0x13677> KERNEL32.dll!BaseThreadInitThunk
0x77a79f02 <ntdll.dll+0x39f02> ntdll.dll!__RtlUserThreadStart
0x77a79ed5 <ntdll.dll+0x39ed5> ntdll.dll!_RtlUserThreadStart

Error #7: LEAK 8 direct bytes 0x0031b818-0x0031b820 + 0 indirect bytes
0x77a9179e <ntdll.dll+0x5179e> ntdll.dll!RtlpUpdateTEBLanguage
0x77a91757 <ntdll.dll+0x51757> ntdll.dll!InitializeTEBUserLangList
0x77a9100a <ntdll.dll+0x5100a> ntdll.dll!RtlGetThreadPreferredUILanguages
0x77a9dc37 <ntdll.dll+0x5dc37> ntdll.dll!LdrpSetThreadPreferredLangList
0x77a83ca4 <ntdll.dll+0x43ca4> ntdll.dll!LdrpLoadResourceFromAlternativeModule
0x77a837dc <ntdll.dll+0x437dc> ntdll.dll!LdrpSearchResourceSection_U
0x77a83e5f <ntdll.dll+0x43e5f> ntdll.dll!RtlLoadString
0x76364095 <KERNELBASE.dll+0x14095> KERNELBASE.dll!LoadStringBaseExW
0x773a7c2b <USER32.dll+0x17c2b> USER32.dll!LoadStringW
0x75f4c3c6 <SETUPAPI.dll+0xc3c6> SETUPAPI.dll!MyLoadString
0x75f49829 <SETUPAPI.dll+0x9829> SETUPAPI.dll!MemoryInitializeEx
0x75f4cdaf <SETUPAPI.dll+0xcdaf> SETUPAPI.dll!ProcessAttach
0x75f4cc65 <SETUPAPI.dll+0xcc65> SETUPAPI.dll!DllMain
0x75f41875 <SETUPAPI.dll+0x1875> SETUPAPI.dll!_CRT_INIT
0x77a79960 <ntdll.dll+0x39960> ntdll.dll!LdrpCallInitRoutine
0x77a7d8c9 <ntdll.dll+0x3d8c9> ntdll.dll!LdrpRunInitializeRoutines
0x77a7d78c <ntdll.dll+0x3d78c> ntdll.dll!LdrpLoadDll
0x77a7c4e5 <ntdll.dll+0x3c4e5> ntdll.dll!LdrLoadDll
0x76362288 <KERNELBASE.dll+0x12288> KERNELBASE.dll!LoadLibraryExW
0x763622e5 <KERNELBASE.dll+0x122e5> KERNELBASE.dll!LoadLibraryExA
0x7652a2b6 <SHELL32.dll+0x7a2b6> SHELL32.dll!__delayLoadHelper2
0x764ffb61 <SHELL32.dll+0x4fb61> SHELL32.dll!_tailMerge_SETUPAPI_dll
0x76500365 <SHELL32.dll+0x50365> SHELL32.dll!CMountPoint::_InitLocalDriveHelperAsync
0x77aa8746 <ntdll.dll+0x68746> ntdll.dll!RtlpTpWorkCallback
0x77a85504 <ntdll.dll+0x45504> ntdll.dll!TppWorkerThread
0x75623677 <KERNEL32.dll+0x13677> KERNEL32.dll!BaseThreadInitThunk
0x77a79f02 <ntdll.dll+0x39f02> ntdll.dll!__RtlUserThreadStart
0x77a79ed5 <ntdll.dll+0x39ed5> ntdll.dll!_RtlUserThreadStart

Error #8: POSSIBLE LEAK 24 direct bytes 0x00304a60-0x00304a78 + 0 indirect bytes
0x7587ef8b <ole32.dll+0x3ef8b> ole32.dll!PrivHeapAlloc
0x75880248 <ole32.dll+0x40248> ole32.dll!EventPoolEntry::operator new
0x75880287 <ole32.dll+0x40287> ole32.dll!EventPoolEntry::CreatePoolEntry
0x7587fa7a <ole32.dll+0x3fa7a> ole32.dll!EventPoolEntry::PrimeEventPool
0x7587f95a <ole32.dll+0x3f95a> ole32.dll!DllMain
0x75895f1f <ole32.dll+0x55f1f> ole32.dll!_initterm_e
0x77a79960 <ntdll.dll+0x39960> ntdll.dll!LdrpCallInitRoutine
0x77a7d8c9 <ntdll.dll+0x3d8c9> ntdll.dll!LdrpRunInitializeRoutines
0x77a7d78c <ntdll.dll+0x3d78c> ntdll.dll!LdrpLoadDll
0x77a7c4e5 <ntdll.dll+0x3c4e5> ntdll.dll!LdrLoadDll
0x76362288 <KERNELBASE.dll+0x12288> KERNELBASE.dll!LoadLibraryExW
0x763622e5 <KERNELBASE.dll+0x122e5> KERNELBASE.dll!LoadLibraryExA
0x7652a2b6 <SHELL32.dll+0x7a2b6> SHELL32.dll!__delayLoadHelper2
0x764fe5f9 <SHELL32.dll+0x4e5f9> SHELL32.dll!_tailMerge_OLEAUT32_dll
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe...

@derekbruening
Copy link
Contributor Author

From timurrrr@google.com on August 29, 2011 07:31:45

...!main
c:\sandbox\12\test.cpp:12

Error #9: POSSIBLE LEAK 24 direct bytes 0x00304aa0-0x00304ab8 + 0 indirect bytes
0x75880248 <ole32.dll+0x40248> ole32.dll!EventPoolEntry::operator new
0x75880287 <ole32.dll+0x40287> ole32.dll!EventPoolEntry::CreatePoolEntry
0x7587fa7a <ole32.dll+0x3fa7a> ole32.dll!EventPoolEntry::PrimeEventPool
0x7587f95a <ole32.dll+0x3f95a> ole32.dll!DllMain
0x75895f1f <ole32.dll+0x55f1f> ole32.dll!_initterm_e
0x77a79960 <ntdll.dll+0x39960> ntdll.dll!LdrpCallInitRoutine
0x77a7d8c9 <ntdll.dll+0x3d8c9> ntdll.dll!LdrpRunInitializeRoutines
0x77a7d78c <ntdll.dll+0x3d78c> ntdll.dll!LdrpLoadDll
0x77a7c4e5 <ntdll.dll+0x3c4e5> ntdll.dll!LdrLoadDll
0x76362288 <KERNELBASE.dll+0x12288> KERNELBASE.dll!LoadLibraryExW
0x763622e5 <KERNELBASE.dll+0x122e5> KERNELBASE.dll!LoadLibraryExA
0x7652a2b6 <SHELL32.dll+0x7a2b6> SHELL32.dll!__delayLoadHelper2
0x764fe5f9 <SHELL32.dll+0x4e5f9> SHELL32.dll!_tailMerge_OLEAUT32_dll
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe!main
c:\sandbox\12\test.cpp:12

Error #10: LEAK 264 direct bytes 0x0036ce20-0x0036cf28 + 0 indirect bytes
0x75888442 <ole32.dll+0x48442> ole32.dll!LockEntry::ThreadInit
0x758884a6 <ole32.dll+0x484a6> ole32.dll!CRWLock::ThreadInit
0x758885ea <ole32.dll+0x485ea> ole32.dll!COleTls::TLSAllocData
0x76509479 <SHELL32.dll+0x59479> SHELL32.dll!CSearchIndexNotificationQueue::s_FlushNotificationQueueThreadProc
0x75cbb6cf <SHLWAPI.dll+0x1b6cf> SHLWAPI.dll!ExecuteWorkItemThreadProc
0x77aa8746 <ntdll.dll+0x68746> ntdll.dll!RtlpTpWorkCallback
0x77a85504 <ntdll.dll+0x45504> ntdll.dll!TppWorkerThread
0x75623677 <KERNEL32.dll+0x13677> KERNEL32.dll!BaseThreadInitThunk
0x77a79f02 <ntdll.dll+0x39f02> ntdll.dll!__RtlUserThreadStart
0x77a79ed5 <ntdll.dll+0x39ed5> ntdll.dll!_RtlUserThreadStart

Error #11: LEAK 264 direct bytes 0x00305888-0x00305990 + 0 indirect bytes
0x75888442 <ole32.dll+0x48442> ole32.dll!LockEntry::ThreadInit
0x758884a6 <ole32.dll+0x484a6> ole32.dll!CRWLock::ThreadInit
0x758885ea <ole32.dll+0x485ea> ole32.dll!COleTls::TLSAllocData
0x76509781 <SHELL32.dll+0x59781> SHELL32.dll!SHFileOperationWithAdditionalFlags
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe!main
c:\sandbox\12\test.cpp:12

Error #12: POSSIBLE LEAK 24 direct bytes 0x003059b8-0x003059d0 + 0 indirect bytes
0x75880248 <ole32.dll+0x40248> ole32.dll!EventPoolEntry::operator new
0x75880287 <ole32.dll+0x40287> ole32.dll!EventPoolEntry::CreatePoolEntry
0x7588035d <ole32.dll+0x4035d> ole32.dll!EventPoolEntry::ThreadInit
0x758884b5 <ole32.dll+0x484b5> ole32.dll!CRWLock::ThreadInit
0x758885ea <ole32.dll+0x485ea> ole32.dll!COleTls::TLSAllocData
0x76509781 <SHELL32.dll+0x59781> SHELL32.dll!SHFileOperationWithAdditionalFlags
0x76509727 <SHELL32.dll+0x59727> SHELL32.dll!SHFileOperationW
0x7670dc43 <SHELL32.dll+0x25dc43> SHELL32.dll!SHFileOperationA
0x00401064 <test.exe+0x1064> test.exe!main
c:\sandbox\12\test.cpp:12

Error #13: POSSIBLE LEAK 196 direct bytes 0x00336d20-0x00336de4 + 4148 indirect bytes
0x77130636 <RPCRT4.dll+0x10636> RPCRT4.dll!AllocWrapper
0x77130610 <RPCRT4.dll+0x10610> RPCRT4.dll!operator new
0x7713dda3 <RPCRT4.dll+0x1dda3> RPCRT4.dll!ThreadSelfHelper
0x771411d1 <RPCRT4.dll+0x211d1> RPCRT4.dll!RpcBindingFromStringBindingW
0x75a45fac <CFGMGR32.dll+0x5fac> CFGMGR32.dll!PNP_HANDLE_bind
0x75a45f46 <CFGMGR32.dll+0x5f46> CFGMGR32.dll!PnPGetGlobalHandles
0x75a46035 <CFGMGR32.dll+0x6035> CFGMGR32.dll!CM_Get_Device_Interface_List_Size_ExW
0x765003ce <SHELL32.dll+0x503ce> SHELL32.dll!CMountPoint::_EnumVolumesNonPrimaryProcess
0x76500365 <SHELL32.dll+0x50365> SHELL32.dll!CMountPoint::_InitLocalDriveHelperAsync
0x77aa8746 <ntdll.dll+0x68746> ntdll.dll!RtlpTpWorkCallback
0x77a85504 <ntdll.dll+0x45504> ntdll.dll!TppWorkerThread
0x75623677 <KERNEL32.dll+0x13677> KERNEL32.dll!BaseThreadInitThunk
0x77a79f02 <ntdll.dll+0x39f02> ntdll.dll!__RtlUserThreadStart
0x77a79ed5 <ntdll.dll+0x39ed5> ntdll.dll!_RtlUserThreadStart

Error #14: POSSIBLE LEAK 24 direct bytes 0x00346fc8-0x00346fe0 + 0 indirect bytes
0x75880248 <ole32.dll+0x40248> ole32.dll!EventPoolEntry::operator new
0x75880287 <ole32.dll+0x40287> ole32.dll!EventPoolEntry::CreatePoolEntry
0x7588035d <ole32.dll+0x4035d> ole32.dll!EventPoolEntry::ThreadInit
0x758884b5 <ole32.dll+0x484b5> ole32.dll!CRWLock::ThreadInit
0x758885ea <ole32.dll+0x485ea> ole32.dll!COleTls::TLSAllocData
0x76509479 <SHELL32.dll+0x59479> SHELL32.dll!CSearchIndexNotificationQueue::s_FlushNotificationQueueThreadProc
0x75cbb6cf <SHLWAPI.dll+0x1b6cf> SHLWAPI.dll!ExecuteWorkItemThreadProc
0x77aa8746 <ntdll.dll+0x68746> ntdll.dll!RtlpTpWorkCallback
0x77a85504 <ntdll.dll+0x45504> ntdll.dll!TppWorkerThread
0x75623677 <KERNEL32.dll+0x13677> KERNEL32.dll!BaseThreadInitThunk
0x77a79f02 <ntdll.dll+0x39f02> ntdll.dll!__RtlUserThreadStart
0x77a79ed5 <ntdll.dll+0x39ed5> ntdll.dll!_RtlUserThreadStart

@derekbruening
Copy link
Contributor Author

From timurrrr@google.com on August 29, 2011 08:38:24

Also seeing this probably-related report on printing_unittests (compare to Error #11)
[with PDB/without PDB]
LEAK 264 direct bytes 0x0390eea8-0x0390efb0 + 0 indirect bytes

1 LockEntry::ThreadInit/CoRevokeInitializeSpy ole32.dll+0x48442

2 CRWLock::ThreadInit/CoRevokeInitializeSpy ole32.dll+0x484a6

3 COleTls::TLSAllocData/CoRevokeInitializeSpy ole32.dll+0x485ea

4 CRpcThreadCache::RpcWorkerThreadEntry/CoGetTreatAsClass ole32.dll+0x2c8a9

5 BaseThreadInitThunk KERNEL32.dll+0x13677

@derekbruening
Copy link
Contributor Author

From rnk@google.com on January 17, 2012 13:31:44

I'm working on cleaning up the reports from shell COM things, and I can still see these leak reports:

Error #6: LEAK 12 direct bytes 0x0031a1b0-0x0031a1bc + 0 indirect bytes
0x77a91862 <ntdll.dll+0x51862> ntdll.dll!LdrpSearchResourceSection_U

Error #7: LEAK 8 direct bytes 0x0031b818-0x0031b820 + 0 indirect bytes
0x77a9179e <ntdll.dll+0x5179e> ntdll.dll!RtlpUpdateTEBLanguage

It looks like a second thread is created and setupapi.dll!_CRT_INIT gets called to initialize some thread local structures, but somehow they aren't eventually freed. I can use windbg to break on RtlpUpdateTEBLanguage and then add watchpoints on the object root. This needs further investigation to see who is supposed to be freeing it that isn't. For now I think these are true leaks that occur once per thread created this way. Only I'm not sure how exactly the thread is getting created, or I would try to create a minimal test case.

I'm going to split this out, file it separately, and add a suppression.

This was referenced Nov 28, 2014
gregcawthorne added a commit that referenced this issue Apr 17, 2021
AArch64 port of drmemory.

Only contains slowpath support with shared_slowpath off.

Pattern mode and fastpath modes are being worked on separately.

Depends on:
https://github.com/DynamoRIO/dynamorio/tree/mem-ref-for-clean-calls-aarch64/core

Current tests we have analysed:
Test project /home/grecaw01/APD-testing/drmem-upstream3/drmemory/build
      Start  1: drmf_proj
 1/49 Test  #1: drmf_proj .........................   Passed    0.45 sec
      Start  2: unit_tests
 2/49 Test  #2: unit_tests ........................   Passed    0.02 sec
      Start  3: hello
 3/49 Test  #3: hello .............................   Passed    3.55 sec
      Start  4: free
 4/49 Test  #4: free ..............................   Passed    3.67 sec
      Start  5: malloc
 5/49 Test  #5: malloc ............................   Passed    3.88 sec
      Start  6: leak_indirect
 6/49 Test  #6: leak_indirect .....................   Passed    3.52 sec
      Start  7: patterns
 7/49 Test  #7: patterns ..........................   Passed    3.93 sec
      Start  8: free.exitcode
 8/49 Test  #8: free.exitcode .....................   Passed    3.64 sec
      Start  9: track_origins
 9/49 Test  #9: track_origins .....................***Failed    0.34 sec
      Start 10: free.pattern
10/49 Test #10: free.pattern ......................***Failed    0.35 sec
      Start 11: malloc.pattern
11/49 Test #11: malloc.pattern ....................***Failed    0.34 sec
      Start 12: track_origins.pattern
12/49 Test #12: track_origins.pattern .............***Failed    0.34 sec
      Start 13: fuzz_corpus
13/49 Test #13: fuzz_corpus .......................   Passed    3.56 sec
      Start 14: fuzz_buffer
14/49 Test #14: fuzz_buffer .......................   Passed    4.62 sec
      Start 15: fuzz_buffer.replace_buffer
15/49 Test #15: fuzz_buffer.replace_buffer ........   Passed    4.62 sec
      Start 16: fuzz_buffer.overflow
16/49 Test #16: fuzz_buffer.overflow ..............***Failed    0.34 sec
      Start 17: fuzz_buffer.mutator.o-b-s-3
17/49 Test #17: fuzz_buffer.mutator.o-b-s-3 .......   Passed    4.59 sec
      Start 18: fuzz_buffer.mutator.r-b-s-3
18/49 Test #18: fuzz_buffer.mutator.r-b-s-3 .......   Passed    4.63 sec
      Start 19: fuzz_buffer.mutator.o-b-3
19/49 Test #19: fuzz_buffer.mutator.o-b-3 .........   Passed    4.60 sec
      Start 20: fuzz_buffer.mutator.r-n
20/49 Test #20: fuzz_buffer.mutator.r-n ...........   Passed    4.54 sec
      Start 21: fuzz_buffer.mutator.random_seed
21/49 Test #21: fuzz_buffer.mutator.random_seed ...   Passed    4.57 sec
      Start 22: fuzz_buffer.one-input
22/49 Test #22: fuzz_buffer.one-input .............   Passed    3.82 sec
      Start 23: fuzz_buffer.load_input
23/49 Test #23: fuzz_buffer.load_input ............   Passed    3.81 sec
      Start 24: fuzz_buffer.skip_initial
24/49 Test #24: fuzz_buffer.skip_initial ..........   Passed    4.01 sec
      Start 25: fuzz_buffer.fixed_size
25/49 Test #25: fuzz_buffer.fixed_size ............   Passed    5.36 sec
      Start 26: fuzz_buffer.offset
26/49 Test #26: fuzz_buffer.offset ................   Passed    5.42 sec
      Start 27: fuzz_buffer.module_name
27/49 Test #27: fuzz_buffer.module_name ...........   Passed    4.58 sec
      Start 28: fuzz_buffer.dictionary
28/49 Test #28: fuzz_buffer.dictionary ............   Passed    4.20 sec
      Start 29: fuzz_buffer.cpp
29/49 Test #29: fuzz_buffer.cpp ...................   Passed   17.77 sec
      Start 30: fuzz_custom_mutator
30/49 Test #30: fuzz_custom_mutator ...............   Passed    4.57 sec
      Start 31: drsyscall_test
31/49 Test #31: drsyscall_test ....................   Passed    0.22 sec
      Start 32: strace_test
32/49 Test #32: strace_test .......................   Passed    0.22 sec
      Start 33: drfuzz_test_empty
33/49 Test #33: drfuzz_test_empty .................   Passed    0.22 sec
      Start 34: drfuzz_test_mutator
34/49 Test #34: drfuzz_test_mutator ...............   Passed    2.38 sec
      Start 35: drfuzz_test_repeat
35/49 Test #35: drfuzz_test_repeat ................***Failed
      Start 36: drfuzz_test_segfault
36/49 Test #36: drfuzz_test_segfault ..............   Passed    0.20 sec
      Start 37: drfuzz_test_app_abort
37/49 Test #37: drfuzz_test_app_abort .............   Passed    0.22 sec
      Start 38: drfuzz_test_no_crash
38/49 Test #38: drfuzz_test_no_crash ..............   Passed    0.22 sec
      Start 39: umbra_test_empty
39/49 Test #39: umbra_test_empty ..................   Passed    0.22 sec
      Start 40: umbra_test_overlap
40/49 Test #40: umbra_test_overlap ................   Passed    0.23 sec
      Start 41: umbra_test_shadow_mem
41/49 Test #41: umbra_test_shadow_mem .............   Passed    0.30 sec
      Start 42: umbra_test_insert_app_to_shadow
42/49 Test #42: umbra_test_insert_app_to_shadow ...   Passed    0.29 sec
      Start 43: umbra_test_consistency
43/49 Test #43: umbra_test_consistency ............   Passed    0.30 sec
      Start 44: umbra_test_allscales
44/49 Test #44: umbra_test_allscales ..............   Passed    0.39 sec
      Start 45: drltrace
45/49 Test #45: drltrace ..........................   Passed    0.35 sec
      Start 46: drltrace_libcalls
46/49 Test #46: drltrace_libcalls .................   Passed    0.36 sec
      Start 47: drltrace_symargs
47/49 Test #47: drltrace_symargs ..................   Passed    0.36 sec
      Start 48: drltrace_libargs
48/49 Test #48: drltrace_libargs ..................   Passed    0.35 sec
      Start 49: strace_sample
49/49 Test #49: strace_sample .....................   Passed    0.22 sec

88% tests passed, 6 tests failed out of 49
gregcawthorne added a commit that referenced this issue Apr 17, 2021
AArch64 port of drmemory.

Only contains slowpath support with shared_slowpath off.

Pattern mode and fastpath modes are being worked on separately.

Currently this build does break some x86 functionality.

Depends on:
https://github.com/DynamoRIO/dynamorio/tree/mem-ref-for-clean-calls-aarch64/core

Current tests we have analysed:
Test project /home/grecaw01/APD-testing/drmem-upstream3/drmemory/build
      Start  1: drmf_proj
 1/49 Test  #1: drmf_proj .........................   Passed    0.45 sec
      Start  2: unit_tests
 2/49 Test  #2: unit_tests ........................   Passed    0.02 sec
      Start  3: hello
 3/49 Test  #3: hello .............................   Passed    3.55 sec
      Start  4: free
 4/49 Test  #4: free ..............................   Passed    3.67 sec
      Start  5: malloc
 5/49 Test  #5: malloc ............................   Passed    3.88 sec
      Start  6: leak_indirect
 6/49 Test  #6: leak_indirect .....................   Passed    3.52 sec
      Start  7: patterns
 7/49 Test  #7: patterns ..........................   Passed    3.93 sec
      Start  8: free.exitcode
 8/49 Test  #8: free.exitcode .....................   Passed    3.64 sec
      Start  9: track_origins
 9/49 Test  #9: track_origins .....................***Failed    0.34 sec
      Start 10: free.pattern
10/49 Test #10: free.pattern ......................***Failed    0.35 sec
      Start 11: malloc.pattern
11/49 Test #11: malloc.pattern ....................***Failed    0.34 sec
      Start 12: track_origins.pattern
12/49 Test #12: track_origins.pattern .............***Failed    0.34 sec
      Start 13: fuzz_corpus
13/49 Test #13: fuzz_corpus .......................   Passed    3.56 sec
      Start 14: fuzz_buffer
14/49 Test #14: fuzz_buffer .......................   Passed    4.62 sec
      Start 15: fuzz_buffer.replace_buffer
15/49 Test #15: fuzz_buffer.replace_buffer ........   Passed    4.62 sec
      Start 16: fuzz_buffer.overflow
16/49 Test #16: fuzz_buffer.overflow ..............***Failed    0.34 sec
      Start 17: fuzz_buffer.mutator.o-b-s-3
17/49 Test #17: fuzz_buffer.mutator.o-b-s-3 .......   Passed    4.59 sec
      Start 18: fuzz_buffer.mutator.r-b-s-3
18/49 Test #18: fuzz_buffer.mutator.r-b-s-3 .......   Passed    4.63 sec
      Start 19: fuzz_buffer.mutator.o-b-3
19/49 Test #19: fuzz_buffer.mutator.o-b-3 .........   Passed    4.60 sec
      Start 20: fuzz_buffer.mutator.r-n
20/49 Test #20: fuzz_buffer.mutator.r-n ...........   Passed    4.54 sec
      Start 21: fuzz_buffer.mutator.random_seed
21/49 Test #21: fuzz_buffer.mutator.random_seed ...   Passed    4.57 sec
      Start 22: fuzz_buffer.one-input
22/49 Test #22: fuzz_buffer.one-input .............   Passed    3.82 sec
      Start 23: fuzz_buffer.load_input
23/49 Test #23: fuzz_buffer.load_input ............   Passed    3.81 sec
      Start 24: fuzz_buffer.skip_initial
24/49 Test #24: fuzz_buffer.skip_initial ..........   Passed    4.01 sec
      Start 25: fuzz_buffer.fixed_size
25/49 Test #25: fuzz_buffer.fixed_size ............   Passed    5.36 sec
      Start 26: fuzz_buffer.offset
26/49 Test #26: fuzz_buffer.offset ................   Passed    5.42 sec
      Start 27: fuzz_buffer.module_name
27/49 Test #27: fuzz_buffer.module_name ...........   Passed    4.58 sec
      Start 28: fuzz_buffer.dictionary
28/49 Test #28: fuzz_buffer.dictionary ............   Passed    4.20 sec
      Start 29: fuzz_buffer.cpp
29/49 Test #29: fuzz_buffer.cpp ...................   Passed   17.77 sec
      Start 30: fuzz_custom_mutator
30/49 Test #30: fuzz_custom_mutator ...............   Passed    4.57 sec
      Start 31: drsyscall_test
31/49 Test #31: drsyscall_test ....................   Passed    0.22 sec
      Start 32: strace_test
32/49 Test #32: strace_test .......................   Passed    0.22 sec
      Start 33: drfuzz_test_empty
33/49 Test #33: drfuzz_test_empty .................   Passed    0.22 sec
      Start 34: drfuzz_test_mutator
34/49 Test #34: drfuzz_test_mutator ...............   Passed    2.38 sec
      Start 35: drfuzz_test_repeat
35/49 Test #35: drfuzz_test_repeat ................***Failed
      Start 36: drfuzz_test_segfault
36/49 Test #36: drfuzz_test_segfault ..............   Passed    0.20 sec
      Start 37: drfuzz_test_app_abort
37/49 Test #37: drfuzz_test_app_abort .............   Passed    0.22 sec
      Start 38: drfuzz_test_no_crash
38/49 Test #38: drfuzz_test_no_crash ..............   Passed    0.22 sec
      Start 39: umbra_test_empty
39/49 Test #39: umbra_test_empty ..................   Passed    0.22 sec
      Start 40: umbra_test_overlap
40/49 Test #40: umbra_test_overlap ................   Passed    0.23 sec
      Start 41: umbra_test_shadow_mem
41/49 Test #41: umbra_test_shadow_mem .............   Passed    0.30 sec
      Start 42: umbra_test_insert_app_to_shadow
42/49 Test #42: umbra_test_insert_app_to_shadow ...   Passed    0.29 sec
      Start 43: umbra_test_consistency
43/49 Test #43: umbra_test_consistency ............   Passed    0.30 sec
      Start 44: umbra_test_allscales
44/49 Test #44: umbra_test_allscales ..............   Passed    0.39 sec
      Start 45: drltrace
45/49 Test #45: drltrace ..........................   Passed    0.35 sec
      Start 46: drltrace_libcalls
46/49 Test #46: drltrace_libcalls .................   Passed    0.36 sec
      Start 47: drltrace_symargs
47/49 Test #47: drltrace_symargs ..................   Passed    0.36 sec
      Start 48: drltrace_libargs
48/49 Test #48: drltrace_libargs ..................   Passed    0.35 sec
      Start 49: strace_sample
49/49 Test #49: strace_sample .....................   Passed    0.22 sec

88% tests passed, 6 tests failed out of 49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant