[Webkit-unassigned] [Bug 56301] New: chrome.dll!WebCore::RenderBlock::removeFloatingObjectsBelow ReadAV at NULL (928f227631041a7b4b71dd15efeae337)
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Mar 14 03:40:31 PDT 2011
https://bugs.webkit.org/show_bug.cgi?id=56301
Summary: chrome.dll!WebCore::RenderBlock::removeFloatingObjects
Below ReadAV at NULL (928f227631041a7b4b71dd15efeae337)
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=85664)
--> (https://bugs.webkit.org/attachment.cgi?id=85664&action=review)
Repro
Chromium: http://code.google.com/p/chromium/issues/detail?id=76033
Repro:
xxxxxxxxxxxxxxxxx--><img border>+++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxx><
<style>
*{
-webkit-columns:auto 3;
margin-bottom:.87%;
border-left-width:thick;
float:right;
}
</style>
The code hits this assert:
template<typename T, size_t inlineCapacity, typename U>
inline T& ListHashSet<T, inlineCapacity, U>::last()
{
ASSERT(!isEmpty());
return m_tail->m_value;
}
When executing "curr = floatingObjectSet.last()" because "floatingObjectSet" is empty in:
void RenderBlock::removeFloatingObjectsBelow(FloatingObject* lastFloat, int logicalOffset)
{
if (!m_floatingObjects)
return;
FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
FloatingObject* curr = floatingObjectSet.last();
while (curr != lastFloat && (!curr->isPlaced() || logicalTopForFloat(curr) >= logicalOffset)) {
m_floatingObjects->decreaseObjectsCount(curr->type());
floatingObjectSet.removeLast();
delete curr;
curr = floatingObjectSet.last();
}
}
This code was called with "lastFloat" == 0, from "void RenderBlock::layoutInlineChildren(bool relayoutChildren, int& repaintLogicalTop, int& repaintLogicalBottom)", because the set of floating objects is empty, which is probably where the issue originates. The function is a bit too complex to do a quick analysis, but it's safe to say this is a NULL ptr crash and not a security issue.
id: chrome.dll!WebCore::RenderBlock::removeFloatingObjectsBelow ReadAV at NULL (928f227631041a7b4b71dd15efeae337)
description: Attempt to read from unallocated NULL pointer in chrome.dll!WebCore::RenderBlock::removeFloatingObjectsBelow
application: Chromium 12.0.704.0
stack: chrome.dll!WebCore::RenderBlock::removeFloatingObjectsBelow
chrome.dll!WebCore::RenderBlock::layoutInlineChildren
chrome.dll!WebCore::RenderBlock::layoutBlock
chrome.dll!WebCore::RenderBlock::layoutColumns
chrome.dll!WebCore::RenderBlock::layoutBlock
chrome.dll!WebCore::RenderBlock::layout
chrome.dll!WebCore::RenderBlock::insertFloatingObject
chrome.dll!WebCore::RenderBlock::layoutBlockChildren
chrome.dll!WebCore::RenderBlock::layoutBlock
chrome.dll!WebCore::RenderBlock::layout
chrome.dll!WebCore::RenderBlock::insertFloatingObject
chrome.dll!WebCore::RenderBlock::layoutBlockChildren
chrome.dll!WebCore::RenderBlock::layoutBlock
chrome.dll!WebCore::RenderBlock::layout
chrome.dll!WebCore::RenderView::layout
chrome.dll!WebCore::FrameView::layout
chrome.dll!WebCore::Document::implicitClose
chrome.dll!WebCore::FrameLoader::checkCompleted
chrome.dll!WebCore::FrameLoader::finishedParsing
chrome.dll!WebCore::Document::finishedParsing
chrome.dll!WebCore::HTMLDocumentParser::prepareToStopParsing
chrome.dll!WebCore::DocumentWriter::endIfNotLoadingMainResource
chrome.dll!WebCore::FrameLoader::finishedLoading
chrome.dll!WebCore::MainResourceLoader::didFinishLoading
chrome.dll!WebCore::ResourceLoader::didFinishLoading
chrome.dll!WebCore::ResourceHandleInternal::didFinishLoading
chrome.dll!webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest
chrome.dll!ResourceDispatcher::OnRequestComplete
chrome.dll!IPC::MessageWithTuple<...>::Dispatch<...>
chrome.dll!ResourceDispatcher::DispatchMessageW
chrome.dll!ResourceDispatcher::OnMessageReceived
chrome.dll!ChildThread::OnMessageReceived
chrome.dll!RunnableMethod<...>::Run
chrome.dll!MessageLoop::RunTask
chrome.dll!MessageLoop::DoWork
chrome.dll!base::MessagePumpDefault::Run
chrome.dll!MessageLoop::RunInternal
chrome.dll!MessageLoop::Run
chrome.dll!RendererMain
--
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