Commit 8f39775a authored by Etienne Bergeron's avatar Etienne Bergeron Committed by Commit Bot

Disable CFI for Angle platform posttask API

This CL is fixing the CFI detection that causes chromium bots failure.

It caused that Angle roll back:
  https://chromium-review.googlesource.com/c/chromium/src/+/2273440

DevTools listening on ws://127.0.0.1:34485/devtools/browser/6b3d139b-d597-448f-bc99-b1a8ccf0ef57
[6573:6573:0630/045819.756406:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
../../ui/gl/angle_platform_impl.cc:134:13: runtime error: control flow integrity check for type 'void (void *)' failed during indirect function call
(/b/s/w/ir/out/Release/libGLESv2.so+0x70e468): note: (unknown) defined here
../../ui/gl/angle_platform_impl.cc:134:13: note: check failed in /b/s/w/ir/out/Release/content_shell, destination function located in /b/s/w/ir/out/Release/libGLESv2.so
    #0 0x55a9dd09723f in angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0::operator()(void (*)(void*), void*) const ./../../ui/gl/angle_platform_impl.cc:134:13
    #1 0x55a9dd0971a4 in void base::internal::FunctorTraits<angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0, void>::Invoke<angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0, void (*)(void*), void*>(angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0&&, void (*&&)(void*), void*&&) ./../../base/bind_internal.h:379:12
    #2 0x55a9dd097124 in void base::internal::InvokeHelper<false, void>::MakeItSo<angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0, void (*)(void*), void*>(angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0&&, void (*&&)(void*), void*&&) ./../../base/bind_internal.h:637:12
    #3 0x55a9dd0970e4 in void base::internal::Invoker<base::internal::BindState<angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0, void (*)(void*), void*>, void ()>::RunImpl<angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0, std::__1::tuple<void (*)(void*), void*>, 0ul, 1ul>(angle::(anonymous namespace)::ANGLEPlatformImpl_postWorkerTask(angle::PlatformMethods*, void (*)(void*), void*)::$_0&&, std::__1::tuple<void (*)(void*), void*>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) ./../../base/bind_internal.h:710:12
    #4 0x55a9dd097094 in _ZN4base8internal7InvokerINS0_9BindStateIZN5angle12_GLOBAL__N_132ANGLEPlatformImpl_postWorkerTaskEPNS3_15PlatformMethodsEPFvPvES7_E3$_0JS9_S7_EEEFvvEE7RunOnceEPNS0_13BindStateBaseE$e9746124236f50940159c137b2ecb700.cfi ./../../base/bind_internal.h:679:12
    #5 0x55a9d7baab74 in base::OnceCallback<void ()>::Run() && ./../../base/callback.h:99:12
    #6 0x55a9dbc25481 in base::TaskAnnotator::RunTask(char const*, base::PendingTask*) ./../../base/task/common/task_annotator.cc:142:33
    #7 0x55a9dbc63df6 in base::internal::TaskTracker::RunSkipOnShutdown(base::internal::Task*) ./../../base/task/thread_pool/task_tracker.cc:768:19
    #8 0x55a9dbc63353 in base::internal::TaskTracker::RunTask(base::internal::Task, base::internal::TaskSource*, base::TaskTraits const&) ./../../base/task/thread_pool/task_tracker.cc:632:5
    #9 0x55a9dbcc2c27 in base::internal::TaskTrackerPosix::RunTask(base::internal::Task, base::internal::TaskSource*, base::TaskTraits const&) ./../../base/task/thread_pool/task_tracker_posix.cc:22:16
    #10 0x55a9dbc6298e in base::internal::TaskTracker::RunAndPopNextTask(base::internal::RegisteredTaskSource) ./../../base/task/thread_pool/task_tracker.cc:505:5
    #11 0x55a9dbc82f5a in base::internal::WorkerThread::RunWorker() ./../../base/task/thread_pool/worker_thread.cc:348:34
    #12 0x55a9dbc82c0c in base::internal::WorkerThread::RunPooledWorker() ./../../base/task/thread_pool/worker_thread.cc:223:3
    #13 0x55a9dbcc3749 in _ZN4base12_GLOBAL__N_110ThreadFuncEPv$02080084496f8c17dc927fff280e5fe6.cfi ./../../base/threading/platform_thread_posix.cc:81:13
    #14 0x7f331ced16b9 in start_thread /build/glibc-LK5gWL/glibc-2.23/nptl/pthread_create.c:333:0
    #15 0x7f33159d141c in clone /build/glibc-LK5gWL/glibc-2.23/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:109:0

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../ui/gl/angle_platform_impl.cc:134:13

Bug: 1091259
Change-Id: Ie6d4cf36ddc40fff2864ce27ba130b9bec069ce8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2276245Reviewed-by: default avatarSunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Etienne Bergeron <etienneb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#784164}
parent f4aa4373
...@@ -123,6 +123,7 @@ void ANGLEPlatformImpl_histogramBoolean(PlatformMethods* platform, ...@@ -123,6 +123,7 @@ void ANGLEPlatformImpl_histogramBoolean(PlatformMethods* platform,
ANGLEPlatformImpl_histogramEnumeration(platform, name, sample ? 1 : 0, 2); ANGLEPlatformImpl_histogramEnumeration(platform, name, sample ? 1 : 0, 2);
} }
NO_SANITIZE("cfi-icall")
void ANGLEPlatformImpl_postWorkerTask(PlatformMethods* platform, void ANGLEPlatformImpl_postWorkerTask(PlatformMethods* platform,
PostWorkerTaskCallback callback, PostWorkerTaskCallback callback,
void* user_data) { void* user_data) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment