457 lines
13 KiB
Plaintext
457 lines
13 KiB
Plaintext
# This file contains suppressions for the Dr.Memory tool, see
|
|
# http://dev.chromium.org/developers/how-tos/using-drmemory
|
|
#
|
|
# This file contains suppressions for the DrMemory reports happening
|
|
# in the 'light' mode (a.k.a. drmemory_light) as well as in the 'full' mode.
|
|
# Please use suppressions_full.txt for all the reports that can happen only
|
|
# in the full mode (drmemory_full),
|
|
|
|
############################
|
|
# Known reports on the third party we have no control over.
|
|
|
|
# Reports from Sophos antivirus
|
|
UNADDRESSABLE ACCESS
|
|
name=Sophos UNADDR
|
|
...
|
|
sophos*.dll!*
|
|
|
|
UNINITIALIZED READ
|
|
name=Sophos UNINIT
|
|
...
|
|
sophos*.dll!*
|
|
|
|
LEAK
|
|
name=Sophos LEAK
|
|
...
|
|
sophos*.dll!*
|
|
|
|
# Reports from Micorosft RDP ActiveX control (mstscax.dll)
|
|
|
|
GDI USAGE ERROR
|
|
name=crbug.com/177832: mstscax.dll causes "GDI USAGE ERROR" errors.
|
|
...
|
|
mstscax.dll!*
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=crbug.com/177832: mstscax.dll causes "UNADDRESSABLE ACCESS" errors.
|
|
...
|
|
mstscax.dll!*
|
|
|
|
############################
|
|
# Suppress some false reports due to bugs in Dr.Memory like wrong analysis
|
|
# assumptions or unhandled syscalls
|
|
|
|
# Please note: the following suppressions were written in the abscense of
|
|
# private symbols so may need to be updated when we switch to auto-loading PDBs
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=12 UNADDR
|
|
...
|
|
SHELL32.dll!SHFileOperation*
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=40 UNADDR
|
|
...
|
|
WINSPOOL.DRV!*
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=40 INVALID HEAP
|
|
...
|
|
WINSPOOL.DRV!*
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=59
|
|
...
|
|
*!SetEnvironmentVariable*
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=68 (UNADDR 1)
|
|
...
|
|
MSWSOCK.dll!WSPStartup
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=68 (UNADDR 2)
|
|
...
|
|
ntdll.dll!RtlValidateUnicodeString
|
|
|
|
############################
|
|
# TODO(timurrrr): investigate these
|
|
UNADDRESSABLE ACCESS
|
|
name=TODO SHParseDisplayName
|
|
...
|
|
*!SHParseDisplayName
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=TODO GetCanonicalPathInfo
|
|
...
|
|
*!GetCanonicalPathInfo*
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=TODO CreateDC
|
|
...
|
|
GDI32.dll!CreateDC*
|
|
|
|
# This one looks interesting
|
|
INVALID HEAP ARGUMENT
|
|
name=TODO ExitProcess
|
|
...
|
|
KERNEL32.dll!ExitProcess
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/103365 (a)
|
|
ppapi_tests.dll!*
|
|
...
|
|
ppapi_tests.dll!*
|
|
*!base::internal::RunnableAdapter<*>::Run
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/103365 (b)
|
|
ppapi_tests.dll!*
|
|
...
|
|
ppapi_tests.dll!*
|
|
*!PP_RunCompletionCallback
|
|
...
|
|
*!base::internal::RunnableAdapter<*>::Run
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/107567 intentional mismatch in _DebugHeapDelete, no frame
|
|
*!std::numpunct<*>::_Tidy
|
|
*!std::numpunct<*>::~numpunct<*>
|
|
|
|
# TODO(rbultje): Investigate if code fix is required instead.
|
|
WARNING
|
|
name=http://crbug.com/223255 - prefetches in vp8
|
|
instruction=prefetch*
|
|
ffmpegsumo.dll!ff_prefetch_mmxext
|
|
ffmpegsumo.dll!vp8_decode_mb_row_no_filter
|
|
|
|
############################
|
|
# Intentional errors in Chromium tests (ToolsSanityTests)
|
|
LEAK
|
|
name=sanity test 01 (memory leak)
|
|
base_unittests.exe!operator new
|
|
base_unittests.exe!operator new[]
|
|
base_unittests.exe!base::ToolsSanityTest_MemoryLeak_Test::TestBody
|
|
|
|
# "..." is needed due to http://code.google.com/p/drmemory/issues/detail?id=666
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 02 (malloc/read left)
|
|
base_unittests.exe!*ReadValueOutOfArrayBoundsLeft
|
|
...
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 03 (malloc/read right)
|
|
base_unittests.exe!*ReadValueOutOfArrayBoundsRight
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 04 (malloc/write left)
|
|
base_unittests.exe!*WriteValueOutOfArrayBoundsLeft
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 05 (malloc/write right)
|
|
base_unittests.exe!*WriteValueOutOfArrayBoundsRight
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody
|
|
|
|
# "..." is needed due to http://code.google.com/p/drmemory/issues/detail?id=666
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 06 (new/read left)
|
|
base_unittests.exe!*ReadValueOutOfArrayBoundsLeft
|
|
...
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 07 (new/read right)
|
|
base_unittests.exe!*ReadValueOutOfArrayBoundsRight
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 08 (new/write left)
|
|
base_unittests.exe!*WriteValueOutOfArrayBoundsLeft
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 09 (new/write right)
|
|
base_unittests.exe!*WriteValueOutOfArrayBoundsRight
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 10 (write after free)
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=sanity test 11 (write after delete)
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=sanity test 12 (array deleted without [])
|
|
base_unittests.exe!base::ToolsSanityTest_ArrayDeletedWithoutBraces_Test::TestBody
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=sanity test 13 (single element deleted with [])
|
|
base_unittests.exe!base::ToolsSanityTest_SingleElementDeletedWithBraces_Test::TestBody
|
|
|
|
UNINITIALIZED READ
|
|
name=sanity test 14 (malloc/read uninit)
|
|
base_unittests.exe!*ReadUninitializedValue
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody
|
|
|
|
UNINITIALIZED READ
|
|
name=sanity test 15 (new/read uninit)
|
|
base_unittests.exe!*ReadUninitializedValue
|
|
base_unittests.exe!*MakeSomeErrors
|
|
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=AboutHandler::AboutCrash deliberate crash
|
|
# TODO(bruening): switch to annotation once have support for that
|
|
chrome.dll!AboutHandler::AboutCrash
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=RendererCrashTest.Crash deliberate crash
|
|
# function is small, little risk for false negative in rest of it
|
|
# TODO(bruening): switch to annotation once have support for that
|
|
chrome.dll!HandleRendererErrorTestParameters
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=NPAPITesterBase.NoHangIfInitCrashes deliberate crash
|
|
# function is small, little risk for false negative in rest of it
|
|
# TODO(bruening): switch to annotation once have support for that
|
|
npapi_test_plugin.dll!NPAPIClient::PluginClient::Initialize
|
|
|
|
# Deliberate NULL deref to crash the child process
|
|
UNADDRESSABLE ACCESS
|
|
name=CrashingChildProcess deliberate crash
|
|
*!CrashingChildProcess
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=::Crasher::Run deliberate crash
|
|
*!base::`anonymous namespace'::Crasher::Run
|
|
|
|
############################
|
|
# Benign issues in Chromium
|
|
|
|
WARNING
|
|
name=http://crbug.com/72463 - prefetches in generated MemCopy
|
|
instruction=prefetch*
|
|
<not in a module>
|
|
chrome.dll!v8::internal::CopyChars*
|
|
|
|
WARNING
|
|
name=prefetches in NVD3DUM.dll
|
|
instruction=prefetch*
|
|
NVD3DUM.dll!*
|
|
|
|
WARNING
|
|
name=prefetches in igdumd32.dll
|
|
instruction=prefetch*
|
|
igdumd32.dll!*
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=582 bizarre cl-generated read-beyond-TOS
|
|
instruction=mov 0xfffffffc(%esp) -> %eax
|
|
chrome.dll!WebCore::RenderStyle::resetBorder*
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/101537
|
|
*!scoped_ptr<_TOKEN_USER>*
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/101717 (1)
|
|
*!scoped_ptr<_TOKEN_DEFAULT_DACL>*
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/101717 (2)
|
|
*!sandbox::PolicyBase::~PolicyBase
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/101717 (3)
|
|
*!scoped_ptr<_UNICODE_STRING>::~scoped_ptr<_UNICODE_STRING>
|
|
*!sandbox::GetHandleName
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/101717 (4)
|
|
*!scoped_ptr<_OBJECT_NAME_INFORMATION>::~scoped_ptr<_OBJECT_NAME_INFORMATION>
|
|
*!sandbox::GetPathFromHandle
|
|
|
|
GDI USAGE ERROR
|
|
name=http://code.google.com/p/drmemory/issues/detail?id=899 deleting bitmap which is probably safe
|
|
system call NtGdiDeleteObjectApp
|
|
*!skia::`anonymous namespace'::Bitmap::~Bitmap
|
|
*!skia::`anonymous namespace'::Bitmap::`scalar deleting destructor'
|
|
|
|
############################
|
|
# Real issues in Chromium
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://crbug.com/88213
|
|
*!base::win::ObjectWatcher::StopWatching
|
|
*!base::win::ObjectWatcher::WillDestroyCurrentMessageLoop
|
|
*!MessageLoop::~MessageLoop
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://crbug.com/96010
|
|
*!TestingProfile::FinishInit
|
|
*!TestingProfile::TestingProfile
|
|
*!BrowserAboutHandlerTest_WillHandleBrowserAboutURL_Test::TestBody
|
|
|
|
UNADDRESSABLE ACCESS
|
|
name=http://crbug.com/106522
|
|
npapi_test_plugin.dll!NPAPIClient::PluginTest::id
|
|
npapi_test_plugin.dll!NPAPIClient::ExecuteGetJavascriptUrlTest::TimerProc
|
|
|
|
# Bad GDI teardown sequence.
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/109963 a
|
|
system call NtGdiDeleteObjectApp
|
|
# usually one or two GDI32.dll frames here but sometimes in light mode
|
|
# there are zero. still pretty narrow b/c of frames on either side.
|
|
...
|
|
*!skia::BitmapPlatformDevice::BitmapPlatformDeviceData::~BitmapPlatformDeviceData
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/109963 b
|
|
system call NtGdiDeleteObjectApp
|
|
# usually one or two GDI32.dll frames here but sometimes in light mode
|
|
# there are zero. still pretty narrow b/c of frames on either side.
|
|
...
|
|
*!skia::BitmapPlatformDevice::BitmapPlatformDeviceData::ReleaseBitmapDC
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/109963 c
|
|
system call NtGdiDeleteObjectApp
|
|
GDI32.dll!DeleteDC
|
|
content.dll!*
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/109963 d
|
|
system call NtGdiDeleteObjectApp
|
|
GDI32.dll!DeleteDC
|
|
*!base::internal::RunnableAdapter*
|
|
|
|
# GDI usage errors in 3rd-party components
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/119552 a
|
|
system call NtGdiDeleteObjectApp
|
|
...
|
|
*!OmniboxViewWin::*
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/119552 b
|
|
system call Nt*
|
|
...
|
|
*!ATL::*
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/119552 c
|
|
# optional gdi32.dll frame followed by user32.dll
|
|
# TODO(bruening): once have
|
|
# http://code.google.com/p/drmemory/issues/detail?id=846
|
|
# I would do "gdi32.dll!...\nuser32.dll!*"
|
|
*32.dll!*
|
|
...
|
|
shell32.dll!SHGetFileInfoW
|
|
*!IconLoader::ReadIcon
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/119552 d
|
|
system call NtGdiDeleteObjectApp
|
|
gdi32.dll!DeleteObject
|
|
riched20.dll!*
|
|
riched20.dll!*
|
|
riched20.dll!*
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/120157
|
|
# "ReleaseDC called from different thread than GetDC"
|
|
system call NtUserCallOneParam.RELEASEDC
|
|
*!*FontCache::CacheElement::~CacheElement
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/158090
|
|
# "DC created by one thread and used by another"
|
|
...
|
|
content.dll!content::*::FontCache::PreCacheFont
|
|
content.dll!content::FontCacheDispatcher::OnPreCacheFont
|
|
content.dll!DispatchToMethod<content::FontCacheDispatcher*
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/158090 c#4
|
|
# ReleaseDC for DC called from different thread than the thread that called GetDC
|
|
system call NtUserCallOneParam.RELEASEDC
|
|
ui.dll!gfx::ReadColorProfile
|
|
ui.dll!gfx::GetColorProfile
|
|
content.dll!content::RenderMessageFilter::OnGetMonitorColorProfile
|
|
content.dll!DispatchToMethod*
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/158350
|
|
# allocated with operator new[], freed with operator delete
|
|
*!*
|
|
*!*
|
|
*!*
|
|
*!*
|
|
*!*
|
|
content.dll!*
|
|
content.dll!*
|
|
content.dll!*
|
|
content.dll!*
|
|
content.dll!*
|
|
*!*
|
|
*!*
|
|
*!*
|
|
*!*
|
|
*!*
|
|
KERNEL32.dll!*
|
|
ntdll.dll!*
|
|
ntdll.dll!*
|
|
|
|
WARNING
|
|
name=Security test (new oveflow)
|
|
MSVCR100D.dll!operator new
|
|
*!operator new
|
|
*!operator new[]
|
|
*!`anonymous namespace'::SecurityTest_NewOverflow_Test::TestBody
|
|
*!testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,void>
|
|
|
|
WARNING
|
|
name=Security test (calloc overflow)
|
|
*!`anonymous namespace'::CallocReturnsNull
|
|
*!`anonymous namespace'::SecurityTest_CallocOverflow_Test::TestBody
|
|
*!testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,void>
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/234484
|
|
# "DC created by one thread and used by another"
|
|
...
|
|
*!chrome::`anonymous namespace'::SetOverlayIcon
|
|
|
|
INVALID HEAP ARGUMENT
|
|
name=http://crbug.com/262088
|
|
drmemorylib.dll!av_dup_packet
|
|
msvcrt.dll!wcsrchr
|
|
ntdll.dll!RtlIsCurrentThreadAttachExempt
|
|
ntdll.dll!LdrShutdownThread
|
|
ntdll.dll!RtlExitUserThread
|
|
|
|
GDI USAGE ERROR
|
|
name=http://crbug.com/266484
|
|
skia.dll!HDCOffscreen::draw
|
|
skia.dll!SkScalerContext_GDI::generateImage
|
|
skia.dll!SkScalerContext::getImage
|
|
skia.dll!SkGlyphCache::findImage
|
|
skia.dll!D1G_NoBounder_RectClip
|
|
skia.dll!SkDraw::drawText
|
|
skia.dll!SkDevice::drawText
|
|
skia.dll!SkCanvas::drawText
|
|
media.dll!media::FakeVideoCaptureDevice::OnCaptureTask
|