# 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=https://github.com/DynamoRIO/drmemory/issues/12 UNADDR
...
SHELL32.dll!SHFileOperation*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/40 UNADDR
...
WINSPOOL.DRV!*

INVALID HEAP ARGUMENT
name=https://github.com/DynamoRIO/drmemory/issues/40 INVALID HEAP
...
WINSPOOL.DRV!*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/59
...
*!SetEnvironmentVariable*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/68 (UNADDR 1)
...
MSWSOCK.dll!WSPStartup

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/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

############################
# 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 https://github.com/DynamoRIO/drmemory/issues/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 https://github.com/DynamoRIO/drmemory/issues/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=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=https://github.com/DynamoRIO/drmemory/issues/582 bizarre cl-generated read-beyond-TOS
instruction=mov    0xfffffffc(%esp) -> %eax
chrome.dll!blink::RenderStyle::resetBorder*

INVALID HEAP ARGUMENT
name=http://crbug.com/101717 (1)
*!sandbox::PolicyBase::~PolicyBase

INVALID HEAP ARGUMENT
name=http://crbug.com/101717 (2)
*!scoped_ptr<>::~scoped_ptr<>
*!sandbox::GetHandleName

INVALID HEAP ARGUMENT
name=http://crbug.com/101717 (3)
*!scoped_ptr<>::~scoped_ptr<>
*!sandbox::GetPathFromHandle

GDI USAGE ERROR
name=https://github.com/DynamoRIO/drmemory/issues/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

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
# https://github.com/DynamoRIO/drmemory/issues/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<>

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<>

WARNING
name=Security test (calloc overflow)
*!`anonymous namespace'::CallocReturnsNull
*!`anonymous namespace'::SecurityTest_CallocOverflow_Test::TestBody
*!testing::internal::HandleExceptionsInMethodIfSupported<>

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::getImage
skia.dll!SkGlyphCache::findImage
skia.dll!D1G_RectClip
skia.dll!SkDraw::drawText

HANDLE LEAK
name=http://crbug.com/346842
system call NtGdiCreateDIBSection
*!CreateDIBSection
*!HDCOffscreen::draw
*!SkScalerContext_GDI::generateImage
*!SkScalerContext::getImage
*!SkGlyphCache::findImage
*!D1G*RectClip
*!SkDraw::drawPosText
*!SkBitmapDevice::drawPosText

HANDLE LEAK
name=http://crbug.com/346993
system call NtDuplicateObject
KERNELBASE.dll!DuplicateHandle
KERNEL32.dll!DuplicateHandle*
base.dll!base::`anonymous namespace'::ThreadFunc
KERNEL32.dll!BaseThreadInitThunk

UNADDRESSABLE ACCESS
name=http://crbug.com/42043-uninit
...
QuickTime.qts!*

GDI USAGE ERROR
name=http://crbug.com/42043-gdi
...
QuickTime.qts!*

UNADDRESSABLE ACCESS
name=IntentionalCrash
*!content::*::*Crash*
*!content::*::MaybeHandleDebugURL

HANDLE LEAK
name=http://crbug.com/371348
system call NtCreateSection
KERNELBASE.dll!CreateFileMappingW
*!base::SharedMemory::Create
*!base::SharedMemory::CreateAnonymous
*!content::ChildThreadImpl::AllocateSharedMemory
...
*!content::ChildSharedBitmapManager::AllocateSharedBitmap
*!cc::ResourceProvider::CreateBitmap

HANDLE LEAK
name=http://crbug.com/371357
system call NtCreateEvent
KERNELBASE.dll!CreateEventExW
KERNELBASE.dll!CreateEventW

HANDLE LEAK
name=http://crbug.com/371368
system call NtCreateNamedPipeFile
KERNELBASE.dll!CreateNamedPipeW
ipc.dll!IPC::Channel::ChannelImpl::CreatePipe
ipc.dll!IPC::Channel::ChannelImpl::ChannelImpl
ipc.dll!IPC::Channel::Channel
ipc.dll!IPC::ChannelProxy::Context::CreateChannel

HANDLE LEAK
name=http://crbug.com/371942
system call NtCreateThreadEx
KERNELBASE.dll!CreateRemoteThreadEx
KERNEL32.dll!CreateThread

HANDLE LEAK
name=http://crbug.com/371946
system call NtUserWindowFromPoint
content.dll!content::LegacyRenderWidgetHostHWND::OnMouseLeave
content.dll!content::LegacyRenderWidgetHostHWND::_ProcessWindowMessage
content.dll!content::LegacyRenderWidgetHostHWND::ProcessWindowMessage
content.dll!ATL::CWindowImplBaseT<>::WindowProc
USER32.dll!gapfnScSendMessage
USER32.dll!GetThreadDesktop
USER32.dll!CharPrevW
USER32.dll!DispatchMessageW
base.dll!base::MessagePumpForUI::ProcessMessageHelper
base.dll!base::MessagePumpForUI::ProcessNextWindowsMessage

UNADDRESSABLE ACCESS
name=http://crbug.com/372177
NPCTRL.dll!DllGetClassObject
NPCTRL.dll!DllGetClassObject
NPCTRL.dll!DllGetClassObject
NPCTRL.dll!DllGetClassObject

HANDLE LEAK
name=http://crbug.com/373333
system call NtGdiCreateCompatibleDC
*!CreateCompatibleDC
*!SkScalerContext_GDI::SkScalerContext_GDI
*!LogFontTypeface::onCreateScalerContext
*!SkTypeface::createScalerContext
*!SkGlyphCache::VisitCache
...
*!SkPaint::descriptorProc
...
*!blink::RenderBlockFlow::layoutBlockFlow
*!blink::RenderBlockFlow::layoutBlock
*!blink::RenderBlock::layout

HANDLE LEAK
name=https://github.com/DynamoRIO/drmemory/issues/1545
system call NtGdiCreateCompatibleDC
GDI32.dll!CreateCompatibleDC
skia.dll!LogFontTypeface::onGetTableData

HANDLE LEAK
name=http://crbug.com/379000
system call NtCreate*
...
*!disk_cache::MappedFile::Init
*!disk_cache::BlockFiles::OpenBlockFile
*!disk_cache::BlockFiles::Init
*!disk_cache::BackendImpl::SyncInit
*!disk_cache::BackendIO::ExecuteBackendOperation
*!base::internal::Invoker<>::Run
*!base::MessageLoop::RunTask
*!base::MessageLoop::DeferOrRunPendingTask
*!base::MessageLoop::DoWork
*!base::MessagePumpForIO::DoRunLoop
*!base::MessagePumpWin::Run
*!base::MessageLoop::RunHandler
*!base::Thread::Run
*!content::BrowserThreadImpl::CacheThreadRun
*!content::BrowserThreadImpl::Run

GDI USAGE ERROR
name=379774
system call NtUserCallOneParam.RELEASEDC
USER32.dll!ReleaseDC
*!std::_Tree<>::_Erase
*!std::_Tree<>::erase
*!DefaultSingletonTraits<>::Delete
*!Singleton<>::OnExit
*!base::AtExitManager::ProcessCallbacksNow
*!base::AtExitManager::~AtExitManager
*!base::TestSuite::~TestSuite

UNADDRESSABLE ACCESS
name=http://crbug.com/382784
*!content::PepperMediaStreamAudioTrackHost::AudioSink::OnData
*!content::MediaStreamAudioSinkOwner::OnData
*!content::WebRtcLocalAudioTrack::Capture
*!content::WebRtcAudioCapturer::Capture
*!media::AudioInputDevice::AudioThreadCallback::Process
*!media::AudioDeviceThread::Thread::Run
*!media::AudioDeviceThread::Thread::ThreadMain

HANDLE LEAK
name=http://crbug.com/383408
system call NtCreateEvent
...
*!base::internal::LockImpl::Lock
*!mojo::system::MessagePipe::RemoveWaiter
*!mojo::system::MessagePipeDispatcher::RemoveWaiterImplNoLock
*!mojo::system::Dispatcher::RemoveWaiter
*!mojo::system::Core::WaitManyInternal
*!mojo::system::Core::WaitMany
*!MojoWaitMany

UNADDRESSABLE ACCESS
name=IntentionalCrashPluginTest.plugin_client.cc
npapi_test_plugin.dll!NP_Initialize
...
*!content::PluginLib::NP_Initialize
*!content::PluginThread::PluginThread
*!content::PluginMain

UNADDRESSABLE ACCESS
name=http://crbug.com/313788
*!InProcessBrowserTest::AddBlankTabAndShow
*!InProcessBrowserTest::CreateBrowser
*!*::RunTestOnMainThread
*!InProcessBrowserTest::RunTestOnMainThreadLoop
*!ChromeBrowserMainParts::PreMainMessageLoopRunImpl
*!ChromeBrowserMainParts::PreMainMessageLoopRun

# This suppression is deliberately general, as bugs reported in
# v8 generated code are difficult to track down. Xref Dr. Memory issue
# https://github.com/DynamoRIO/drmemory/issues/1582
UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/1582
...
*!v8::internal::Invoke
*!v8::internal::Execution::Call
*!v8::Function::Call

HANDLE LEAK
name=http://crbug.com/387394
system call NtCreateTimer
KERNELBASE.dll!CreateWaitableTimerExW
KERNEL32.dll!CreateWaitableTimerW
*!rtc::Timing::Timing
...
*!content::RenderProcessHostImpl::CreateMessageFilters
*!content::RenderProcessHostImpl::Init
*!content::RenderViewHostImpl::CreateRenderView

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/dynamorio/issues/1443
dynamorio.dll!*

UNINITIALIZED READ
name=https://github.com/DynamoRIO/dynamorio/issues/1443 (another instance)
dynamorio.dll!*

UNADDRESSABLE ACCESS
name=http://crbug.com/400495
aura.dll!aura::Window::Contains
aura.dll!aura::WindowEventDispatcher::OnWindowHidden
aura.dll!aura::WindowEventDispatcher::OnPostNotifiedWindowDestroying
aura.dll!aura::Window::~Window

UNADDRESSABLE ACCESS
name=http://crbug.com/400511
content.dll!content::WebThreadBase::TaskObserverAdapter::WillProcessTask
base.dll!base::MessageLoop::RunTask
base.dll!base::Thread::StopSoon
base.dll!base::MessageLoop::DeferOrRunPendingTask

UNADDRESSABLE ACCESS
name=http://crbug.com/414675
blink_web.dll!blink::toCoreFrame
blink_web.dll!blink::RemoteFrameClient::firstChild
blink_web.dll!blink::WebRemoteFrameImpl::~WebRemoteFrameImpl
blink_web.dll!blink::WebRemoteFrameImpl::close
content.dll!content::RenderFrameProxy::~RenderFrameProxy

UNADDRESSABLE ACCESS
name=http://crbug.com/420311
blink_web.dll!blink::Frame::deprecatedLocalOwner
blink_web.dll!blink::Document::topDocument
blink_web.dll!blink::Document::axObjectCacheOwner
blink_web.dll!blink::Document::existingAXObjectCache
blink_web.dll!blink::FrameView::removeFromAXObjectCache
blink_web.dll!blink::FrameView::prepareForDetach
blink_web.dll!blink::LocalFrame::setView
blink_web.dll!blink::FrameTree::~FrameTree

UNADDRESSABLE ACCESS
name=http://crbug.com/432070
blink_web.dll!blink::Frame::detach
content.dll!content::RenderFrameProxy::OnDeleteProxy
content.dll!content::RenderFrameProxy::OnMessageReceived
content.dll!content::MessageRouter::RouteMessage

HANDLE LEAK
name=http://crbug.com/441785
system call NtCreateSection
*!CreateFileMappingW
*!base::SharedMemory::Create
*!base::SharedMemory::CreateAnonymous
*!content::ChildThread::AllocateSharedMemory
*!content::ChildSharedBitmapManager::AllocateSharedMemoryBitmap
*!content::ChildSharedBitmapManager::AllocateSharedBitmap
*!cc::ResourceProvider::CreateBitmap
*!cc::ResourceProvider::Create*Resource

UNADDRESSABLE ACCESS
name=http://crbug.com/445836_a
...
content.dll!content::RenderFrameImpl::~RenderFrameImpl
content.dll!content::RenderFrameImpl::`vector deleting destructor'
content.dll!content::RenderViewImpl::~RenderViewImpl
content.dll!content::RenderViewImpl::`vector deleting destructor'
content.dll!base::internal::BindState<>::`scalar deleting destructor'
base.dll!scoped_refptr<>::Release
base.dll!base::internal::CallbackBase::~CallbackBase

INVALID HEAP ARGUMENT
name=http://crbug.com/445836_b
drmemorylib.dll!replace_operator_delete
ipc.dll!IPC::Listener::`vector deleting destructor'
content.dll!content::RenderFrameImpl::~RenderFrameImpl
content.dll!content::RenderFrameImpl::`vector deleting destructor'
content.dll!content::RenderViewImpl::~RenderViewImpl
content.dll!content::RenderViewImpl::`vector deleting destructor'
content.dll!base::internal::BindState<>::`scalar deleting destructor'
base.dll!scoped_refptr<>::Release
base.dll!base::internal::CallbackBase::~CallbackBase

HANDLE LEAK
name=http://crbug.com/449989
system call NtOpenProcess
KERNELBASE.dll!OpenProcess
base.dll!base::Process::OpenWithExtraPriviles
content.dll!content::BrowserMessageFilter::Internal::OnChannelConnected

UNADDRESSABLE ACCESS
name=http://crbug.com/455060
*!content::FrameAccessibility::GetParent
*!content::RenderFrameHostImpl::AccessibilityGetParentFrame
*!content::BrowserAccessibilityManager::GetDelegateFromRootManager
*!content::BrowserAccessibilityManager::OnWindowBlurred
...
*!content::RenderWidgetHostViewAura::Destroy

UNADDRESSABLE ACCESS
name=http://crbug.com/455066
system call NtReadFile parameter #4
KERNELBASE.dll!ReadFile
KERNEL32.dll!ReadFile
*!net::FileStream::Context::ReadAsync
*!base::internal::RunnableAdapter<>::Run

INVALID HEAP ARGUMENT
name=http://crbug.com/455994
drmemorylib.dll!replace_operator_delete
*!IPC::Listener::`vector deleting destructor'
*!content::RenderFrameImpl::~RenderFrameImpl
*!content::RenderFrameImpl::`vector deleting destructor'
*!content::RenderViewImpl::~RenderViewImpl
*!content::RenderViewImpl::`vector deleting destructor'
*!scoped_refptr<>::Release
*!base::internal::BindState<>::`scalar deleting destructor'
*!scoped_refptr<>::Release
*!base::internal::CallbackBase::~CallbackBase
*!base::MessagePumpDefault::Run
*!base::MessageLoop::RunHandler
*!base::MessageLoop::Run
*!content::RendererMain
*!content::RunNamedProcessTypeMain
*!content::ContentMainRunnerImpl::Run
*!content::ContentMain
*!content::LaunchTests

UNADDRESSABLE ACCESS
name=http://crbug.com/456131
...
*!content::NavigateToURL
*!content::BrowserSideNavigationBrowserTest_BrowserInitiatedNavigations_Test::RunTestOnMainThread
*!content::ContentBrowserTest::RunTestOnMainThreadLoop
*!content::BrowserTestBase::ProxyRunTestOnMainThreadLoop
*!content::ShellBrowserMainParts::PreMainMessageLoopRun
*!content::BrowserMainLoop::PreMainMessageLoopRun
*!base::internal::Invoker<>::Run
*!content::StartupTaskRunner::RunAllTasksNow
*!content::BrowserMainLoop::CreateStartupTasks
*!content::BrowserMainRunnerImpl::Initialize
*!ShellBrowserMain
*!content::ShellMainDelegate::RunProcess
*!content::RunNamedProcessTypeMain
*!content::ContentMainRunnerImpl::Run
*!content::ContentMain
*!content::BrowserTestBase::SetUp
*!content::ContentBrowserTest::SetUp
