[Webkit-unassigned] [Bug 22168] New: Chromium is seeing crashes using TextIterator

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 10 17:26:06 PST 2008


           Summary: Chromium is seeing crashes using TextIterator
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Macintosh
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: eric at webkit.org
                CC: mitz at webkit.org, justin.garcia at apple.com


I'm not sure why the bug is hidden, and I don't understand chromium's bug
system enough to change it.  So I'm just filing this here.

We're seeing a crash when using TextIterator, after an advance() call,
sometimes the resulting characters() is 0x02, the only way I can see that
happening is if emitText is called with a node with a null string.

The only way I see emitText ever being called where the string wasn't null
checked is here:

            // Handle either a single newline character (which becomes a
            // or a run of characters that does not include a newline.
            // This effectively translates newlines to spaces without copying
the text.
            if (str[runStart] == '\n') {
                emitCharacter(' ', m_node, 0, runStart, runStart + 1);
                m_offset = runStart + 1;
            } else {
                int subrunEnd = str.find('\n', runStart);
                if (subrunEnd == -1 || subrunEnd > runEnd)
                    subrunEnd = runEnd;

                m_offset = subrunEnd;
                emitText(m_node, runStart, subrunEnd);

I'm not fully confident in my mental debugging, so I'd like to try and catch
this in the wild with more stack information.  Hence, I'm suggesting adding
this ASSERT.  There are various ways to fix this, including making it more
explicit what strings we're checking.  In the one call site which might be
wrong, we check "str" length before calling emitText, but m_node does not
necessarily still have an renderer() which returns that string, since m_node
can be changed independently of "str".

I'll post a patch with the ASSERT shortly.

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

More information about the webkit-unassigned mailing list