[Webkit-unassigned] [Bug 54897] New: chrome.dll!WebCore::RenderBlock::deleteLineBoxTree ReadAV at NULL (1dcc16082f96d7624e2b8335a06633d2)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Feb 21 11:45:06 PST 2011


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

           Summary: chrome.dll!WebCore::RenderBlock::deleteLineBoxTree
                    ReadAV at NULL (1dcc16082f96d7624e2b8335a06633d2)
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Windows Vista
            Status: NEW
          Severity: Normal
          Priority: P1
         Component: HTML DOM
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: skylined at chromium.org
                CC: eric at webkit.org


Created an attachment (id=83199)
 --> (https://bugs.webkit.org/attachment.cgi?id=83199&action=review)
Repro

Chromium: http://code.google.com/p/chromium/issues/detail?id=73669
RenderInline::splitFlow calls containingBlock(), which can return NULL. The code does not handle this, leading to a NULL ptr.
http://codesearch.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/rendering/RenderObject.cpp&q=containingBlock&exact_package=chromium&sa=N&cd=2&ct=rc&l=608

The whole renderer spaghetti is beyond me, so I'm at a loss as to how to fix it.

webcore/rendering/renderinline.cpp:
void RenderInline::splitFlow(RenderObject* beforeChild, RenderBlock* newBlockBox,
                             RenderObject* newChild, RenderBoxModelObject* oldCont)
{
    RenderBlock* pre = 0;
    RenderBlock* block = containingBlock();

    // Delete our line boxes before we do the inline split into continuations.
    block->deleteLineBoxTree(); // NULL ptr...
<snip>

Repro:
<html xmlns="http://www.w3.org/1999/xhtml">
  <script>
    window.open('javascript:document.write("<canvas><d><section>")');
  </script>
</html>

id:             chrome.dll!WebCore::RenderBlock::deleteLineBoxTree ReadAV at NULL (1dcc16082f96d7624e2b8335a06633d2)
description:    Attempt to read from unallocated NULL pointer+0x8 in chrome.dll!WebCore::RenderBlock::deleteLineBoxTree
application:    Chromium 11.0.679.0
stack:          chrome.dll!WebCore::RenderBlock::deleteLineBoxTree
                chrome.dll!WebCore::RenderInline::splitFlow
                chrome.dll!WebCore::RenderInline::addChildIgnoringContinuation
                chrome.dll!WebCore::RenderInline::addChild
                chrome.dll!WebCore::Node::createRendererIfNeeded
                chrome.dll!WebCore::Element::attach
                chrome.dll!WebCore::HTMLConstructionSite::attach<...>
                chrome.dll!WebCore::HTMLConstructionSite::insertHTMLElement
                chrome.dll!WebCore::HTMLTreeBuilder::processStartTagForInBody
                chrome.dll!WebCore::HTMLTreeBuilder::processStartTag
                chrome.dll!WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken
                chrome.dll!WebCore::HTMLTreeBuilder::constructTreeFromToken
                chrome.dll!WebCore::HTMLDocumentParser::pumpTokenizer
                chrome.dll!WebCore::HTMLDocumentParser::insert
                chrome.dll!WebCore::Document::write
                chrome.dll!WebCore::Document::write
                chrome.dll!WebCore::V8HTMLDocument::writeCallback
                chrome.dll!v8::internal::HandleApiCallHelper<...>
                chrome.dll!v8::internal::Builtin_HandleApiCall
                chrome.dll!v8::internal::Invoke
                chrome.dll!v8::internal::Execution::Call
                ...

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list