[Webkit-unassigned] [Bug 187382] New: [Crash] Illegal use of uninitialized std::optional value in WebCore::AnimationBase::updateStateMachine

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 6 02:10:00 PDT 2018


https://bugs.webkit.org/show_bug.cgi?id=187382

            Bug ID: 187382
           Summary: [Crash] Illegal use of uninitialized std::optional
                    value in WebCore::AnimationBase::updateStateMachine
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Animations
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: fred.wang at free.fr
                CC: cgarcia at igalia.com, dino at apple.com, graouts at apple.com,
                    mcatanzaro at igalia.com

See bug 186536 comment 41 for a repro case with Google drive and stack trace. With the patch from bug 186536, the crash happens here:

        case AnimationState::PausedWaitTimer:
            ASSERT(input == AnimationStateInput::PlayStateRunning);
            ASSERT(paused());
            // Update the times
            m_startTime = m_startTime.value(0) + beginAnimationUpdateTime() - m_pauseTime.value_or(0);
            m_pauseTime = std::nullopt;

Checking other potential misuses of uninitialized std::optional members in AnimationBase::updateStateMachine(), I only see one possible other place.

I'll just use value_or(0) for these two places to workaround these issues. Antoine Quint mentioned that the old animation code is going to be removed soon, so the actual way we fix these should not be a big deal...

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180706/d1dd7f47/attachment.html>


More information about the webkit-unassigned mailing list