Note: Google Test filter = RTCVideoDecoderAdapterTest.UseAfterFreeOnInitializeSyncTimeout [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from RTCVideoDecoderAdapterTest [ RUN ] RTCVideoDecoderAdapterTest.UseAfterFreeOnInitializeSyncTimeout ================================================================= ==2739==ERROR: AddressSanitizer: heap-use-after-free on address 0x7465840594c0 at pc 0x5944e5e2cfe4 bp 0x735574a78390 sp 0x735574a78388 READ of size 8 at 0x7465840594c0 thread T4 (Media Thread) #0 0x5944e5e2cfe3 in base::internal::Invoker, base::TimeTicks, media::VideoDecoderType*)::$_0&&, base::OnceCallback&&, media::VideoDecoderType*, media::VideoDecoder*>, base::internal::BindState, base::TimeTicks, media::VideoDecoderType*)::$_0, base::OnceCallback, blink::CrossThreadUnretainedWrapper, blink::CrossThreadUnretainedWrapper>, void (media::TypedStatus)>::RunOnce(base::internal::BindStateBase*, media::TypedStatus&&) third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc:301:44 #1 0x5944d7728300 in void base::internal::DecayedFunctorTraits)>, media::TypedStatus&&>::Invoke)>, media::TypedStatus>(base::OnceCallback)>&&, media::TypedStatus&&) base/functional/callback.h:155:12 #2 0x5944d77280b0 in base::internal::Invoker)>&&, media::TypedStatus&&>, base::internal::BindState)>, media::TypedStatus>, void ()>::RunOnce(base::internal::BindStateBase*) base/functional/bind_internal.h:932:12 #3 0x5944e6221c23 in base::TaskAnnotator::RunTaskImpl(base::PendingTask&) base/functional/callback.h:155:12 #4 0x5944e628d2a2 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) base/task/common/task_annotator.h:112:5 #5 0x5944e628c04a in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:345:40 #6 0x5944e61551e2 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:65:55 #7 0x5944e628ea04 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:657:12 #8 0x5944e61e1890 in base::RunLoop::Run(base::Location const&) base/run_loop.cc:135:14 #9 0x5944e63261cc in base::Thread::Run(base::RunLoop*) base/threading/thread.cc:356:13 #10 0x5944e632675f in base::Thread::ThreadMain() base/threading/thread.cc:426:3 #11 0x5944e637dbae in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:102:13 #12 0x5944d61a057a in asan_thread_start(void*) asan_interceptors.cpp 0x7465840594c0 is located 0 bytes inside of 232-byte region [0x7465840594c0,0x7465840595a8) freed by thread T4 (Media Thread) here: #0 0x5944d61dcf56 in operator delete(void*, unsigned long) (/chromium/chromium/src/out/asan/blink_platform_unittests+0xa6cdf56) (BuildId: 1b1fbae86f398447) #1 0x5944e5e2f7d0 in blink::RTCVideoDecoderAdapter::Impl::~Impl() third_party/libc++/src/include/__memory/unique_ptr.h:74:5 #2 0x5944e5e31351 in base::internal::Invoker>&&, base::WaitableEvent*>, base::internal::BindState>, blink::CrossThreadUnretainedWrapper>, void ()>::RunOnce(base::internal::BindStateBase*) third_party/libc++/src/include/__memory/unique_ptr.h:74:5 #3 0x5944e6221c23 in base::TaskAnnotator::RunTaskImpl(base::PendingTask&) base/functional/callback.h:155:12 #4 0x5944e628d2a2 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*) base/task/common/task_annotator.h:112:5 #5 0x5944e628c04a in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:345:40 #6 0x5944e61551e2 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:65:55 #7 0x5944e628ea04 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:657:12 #8 0x5944e61e1890 in base::RunLoop::Run(base::Location const&) base/run_loop.cc:135:14 #9 0x5944e63261cc in base::Thread::Run(base::RunLoop*) base/threading/thread.cc:356:13 #10 0x5944e632675f in base::Thread::ThreadMain() base/threading/thread.cc:426:3 #11 0x5944e637dbae in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:102:13 #12 0x5944d61a057a in asan_thread_start(void*) asan_interceptors.cpp previously allocated by thread T0 here: #0 0x5944d61dc351 in operator new(unsigned long) (/chromium/chromium/src/out/asan/blink_platform_unittests+0xa6cd351) (BuildId: 1b1fbae86f398447) #1 0x5944d76a260a in blink::RTCVideoDecoderAdapterTest::RTCVideoDecoderAdapterTest() third_party/libc++/src/include/__memory/unique_ptr.h:756:26 #2 0x5944d771d430 in testing::internal::TestFactoryImpl::CreateTest() third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc:881:1 #3 0x5944e359d6b0 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc #4 0x5944e359fa23 in testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:3070:30 #5 0x5944e35cef5a in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:6062:44 #6 0x5944e35cda2e in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc #7 0x5944ecf41ddc in base::TestSuite::Run() base/test/test_suite.cc:440:16 #8 0x5944d814f795 in (anonymous namespace)::runTestSuite(base::TestSuite*) third_party/blink/renderer/platform/testing/run_all_tests.cc:52:27 #9 0x5944d814fa1e in base::internal::Invoker, base::internal::BindState>, int ()>::RunOnce(base::internal::BindStateBase*) base/functional/bind_internal.h:673:12 #10 0x5944ecf4d254 in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback, unsigned long, int, unsigned long, bool, base::RepeatingCallback, base::OnceCallback) base/functional/callback.h:155:12 #11 0x5944ecf4cb7b in base::LaunchUnitTests(int, char**, base::OnceCallback, unsigned long) base/test/launcher/unit_test_launcher.cc:337:10 #12 0x5944d814f588 in main third_party/blink/renderer/platform/testing/run_all_tests.cc:82:14 #13 0x775585645249 (/lib/x86_64-linux-gnu/libc.so.6+0x27249) (BuildId: 6196744a316dbd57c0fd8968df1680aac482cec4) Thread T4 (Media Thread) created by T0 here: #0 0x5944d6186265 in pthread_create (/chromium/chromium/src/out/asan/blink_platform_unittests+0xa677265) (BuildId: 1b1fbae86f398447) #1 0x5944e637d202 in base::(anonymous namespace)::CreateThread(unsigned long, bool, base::PlatformThreadBase::Delegate*, base::PlatformThreadHandle*, base::ThreadType, base::MessagePumpType) base/threading/platform_thread_posix.cc:153:13 #2 0x5944e6324b7c in base::Thread::StartWithOptions(base::Thread::Options) base/threading/thread.cc:232:26 #3 0x5944e63246b7 in base::Thread::Start() base/threading/thread.cc:184:10 #4 0x5944d76a2600 in blink::RTCVideoDecoderAdapterTest::RTCVideoDecoderAdapterTest() third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc:300:19 #5 0x5944d771d430 in testing::internal::TestFactoryImpl::CreateTest() third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc:881:1 #6 0x5944e359d6b0 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc #7 0x5944e359fa23 in testing::TestSuite::Run() third_party/googletest/src/googletest/src/gtest.cc:3070:30 #8 0x5944e35cef5a in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:6062:44 #9 0x5944e35cda2e in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc #10 0x5944ecf41ddc in base::TestSuite::Run() base/test/test_suite.cc:440:16 #11 0x5944d814f795 in (anonymous namespace)::runTestSuite(base::TestSuite*) third_party/blink/renderer/platform/testing/run_all_tests.cc:52:27 #12 0x5944d814fa1e in base::internal::Invoker, base::internal::BindState>, int ()>::RunOnce(base::internal::BindStateBase*) base/functional/bind_internal.h:673:12 #13 0x5944ecf4d254 in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback, unsigned long, int, unsigned long, bool, base::RepeatingCallback, base::OnceCallback) base/functional/callback.h:155:12 #14 0x5944ecf4cb7b in base::LaunchUnitTests(int, char**, base::OnceCallback, unsigned long) base/test/launcher/unit_test_launcher.cc:337:10 #15 0x5944d814f588 in main third_party/blink/renderer/platform/testing/run_all_tests.cc:82:14 #16 0x775585645249 (/lib/x86_64-linux-gnu/libc.so.6+0x27249) (BuildId: 6196744a316dbd57c0fd8968df1680aac482cec4) SUMMARY: AddressSanitizer: heap-use-after-free third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc:301:44 in base::internal::Invoker, base::TimeTicks, media::VideoDecoderType*)::$_0&&, base::OnceCallback&&, media::VideoDecoderType*, media::VideoDecoder*>, base::internal::BindState, base::TimeTicks, media::VideoDecoderType*)::$_0, base::OnceCallback, blink::CrossThreadUnretainedWrapper, blink::CrossThreadUnretainedWrapper>, void (media::TypedStatus)>::RunOnce(base::internal::BindStateBase*, media::TypedStatus&&) Shadow bytes around the buggy address: 0x746584059200: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x746584059280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x746584059300: 00 00 fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x746584059380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x746584059400: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa =>0x746584059480: fa fa fa fa fa fa fa fa[fd]fd fd fd fd fd fd fd 0x746584059500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x746584059580: fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa fa 0x746584059600: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x746584059680: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa 0x746584059700: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==2739==ADDITIONAL INFO ==2739==Note: Please include this section with the ASan report. Task trace: #0 0x5944d7727e52 in void std::__Cr::__function::__policy_func)>&, base::RepeatingCallback)> const&, base::RepeatingCallback const&)>::__call_func)>&, base::RepeatingCallback)> const&, base::RepeatingCallback const&)>::StdFunctionAdaptor>(std::__Cr::__function::__policy_storage const*, media::VideoDecoderConfig const&, bool, media::CdmContext*, base::OnceCallback)>&, base::RepeatingCallback)> const&, base::RepeatingCallback const&) third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc:897:13 #1 0x5944e5e26574 in blink::RTCVideoDecoderAdapter::InitializeSync(media::VideoDecoderConfig const&) third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter.cc:626:38 #2 0x5944d7686781 in blink::(anonymous namespace)::RTCVideoDecoderAdapterWrapper::Create(media::GpuVideoAcceleratorFactories*, webrtc::SdpVideoFormat const&, bool) third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_adapter_test.cc:160:9 ==2739==END OF ADDITIONAL INFO ==2739==ABORTING