<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>25335</bug_id>
          
          <creation_ts>2009-04-22 16:03:24 -0700</creation_ts>
          <short_desc>crash in VisibleSelection::appendTrailingWhitespace()</short_desc>
          <delta_ts>2009-04-24 11:40:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Roman">eroman</reporter>
          <assigned_to name="Eric Roman">eroman</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>118434</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-22 16:03:24 -0700</bug_when>
    <thetext>This crash comes from &lt;http://code.google.com/p/chromium/issues/detail?id=10645&gt;

To hit it, must have EditorClient::isSelectTrailingWhitespaceEnabled() set to return true (therefore this affects chromium, but not safari).

To reproduce, load an image url, and double click in the whitespace around the image -- CRASH.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118443</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-22 16:46:32 -0700</bug_when>
    <thetext>The crash happens in VisibleSelection::appendTrailingWhitespace():

    CharacterIterator charIt(searchRange.get(), true);

    for (; charIt.length(); charIt.advance(1)) {
        UChar c = charIt.characters()[0]; // &lt;====== CRASH HERE
        ...
    }

The problem is that charIt.length() is not a sufficient guard -- if CharacterIterator is constructed with a particular empty Range, then TextIterator::m_textLength remains uninitialized after CharacterIterator is constructed.

My proposed fix is to add a check for charIt.atEnd() in the loop:

-    for (; charIt.length(); charIt.advance(1)) {
+    for (; !charIt.atEnd() &amp;&amp; charIt.length(); charIt.advance(1)) {

However, it might be better to instead change TextIterator to initialize m_textLength to 0 to avoid this happening elsewhere. This approach might be more consistent with the comment in &lt;https://bugs.webkit.org/show_bug.cgi?id=23232#c2&gt;:

&gt; There&apos;s no need to check atEnd() here. Once you&apos;re at the end, length is
&gt; guaranteed to return 0.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118570</commentid>
    <comment_count>2</comment_count>
      <attachid>29720</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-23 17:25:33 -0700</bug_when>
    <thetext>Created attachment 29720
Check that it.atEnd() in addition to it.length() &gt; 0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118571</commentid>
    <comment_count>3</comment_count>
      <attachid>29721</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-23 17:28:03 -0700</bug_when>
    <thetext>Created attachment 29721
Check that it.atEnd() in addition to it.length() &gt; 0

actually add the file to patch this time :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118572</commentid>
    <comment_count>4</comment_count>
      <attachid>29721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-23 17:33:32 -0700</bug_when>
    <thetext>Comment on attachment 29721
Check that it.atEnd() in addition to it.length() &gt; 0

This is the wrong fix. The CharacterIterator::length is guaranteed to return 0 when it&apos;s at the end, and the fact that it&apos;s not is a bug.

The correct fix, as suggested earlier in this report, is to make sure the TextIterator constructors initialize m_textLength to 0 in all code paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118573</commentid>
    <comment_count>5</comment_count>
      <attachid>29722</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-23 17:34:48 -0700</bug_when>
    <thetext>Created attachment 29722
Check that it.atEnd() in addition to it.length() &gt; 0

Correct the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118574</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-23 17:35:49 -0700</bug_when>
    <thetext>Ok.

Please disregard the v3 patch I just uploaded (it was before I saw your comment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118575</commentid>
    <comment_count>7</comment_count>
      <attachid>29722</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-04-23 17:35:52 -0700</bug_when>
    <thetext>Comment on attachment 29722
Check that it.atEnd() in addition to it.length() &gt; 0

review- for same reason as previous.

The bug here is in TextIterator, not VisibleSelection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118576</commentid>
    <comment_count>8</comment_count>
      <attachid>29723</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-23 18:02:14 -0700</bug_when>
    <thetext>Created attachment 29723
Initialize TextIterator::m_textLength to 0, to avoid accessing un-initialized memory when construction fails.

I threw in initialization of m_textCharacters(0) for good measure, but it isn&apos;t strictly needed for this fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118577</commentid>
    <comment_count>9</comment_count>
      <attachid>29724</attachid>
    <who name="Eric Roman">eroman</who>
    <bug_when>2009-04-23 18:07:20 -0700</bug_when>
    <thetext>Created attachment 29724
Initialize TextIterator::m_textLength to 0, to avoid accessing un-initialized memory when construction fails.

difference from previous version (v4), is fixed LayoutTests/ChangeLog (still getting the hang of it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118684</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-04-24 11:40:51 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/42831.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29720</attachid>
            <date>2009-04-23 17:25:33 -0700</date>
            <delta_ts>2009-04-23 17:28:03 -0700</delta_ts>
            <desc>Check that it.atEnd() in addition to it.length() &gt; 0</desc>
            <filename>append-trailing-crash-v1.patch</filename>
            <type>text/plain</type>
            <size>2601</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQyNzk4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9t
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCBhbiBhY2Nlc3MgdmlvbGF0aW9uIHdoZW4gZG91YmxlIGNsaWNraW5nIG91
dHNpZGUgb2YgYW4gaW1hZ2Ugd2hlbiB0aGUgImFwcGVuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIiBm
ZWF0dXJlIGlzIGVuYWJsZWQuCisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNTMzNT4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRt
bDogQWRkZWQuCisKIDIwMDktMDQtMjMgIEtldmluIE1jQ3VsbG91Z2ggIDxrbWNjdWxsb3VnaEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNo
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1BB
U1MKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3Bh
Y2UtaW1nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7Cisg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24g
c3RhcnRUZXN0KCkgeworICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgICAgLy8gVGhlIElGUkFNRSBoYXMgbG9hZGVkIHdpdGggYW4gaW1hZ2UgaW4gaXQuIERv
dWJsZSBjbGljaworICAgICAgICAgIC8vIGluIGFueSBvZiB0aGUgc3BhY2UgYXJvdW5kIHRoZSBp
bWFnZSBpbiB0aGUgSUZSQU1FLgorICAgICAgICAgIC8vIChUaGUgaW1hZ2UgaXMgNzYgeCAxMDMg
cGl4ZWxzIGJpZykuCisgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTAp
OworICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAvLyBBcyBsb25nIGFzIGRp
ZG4ndCBjcmFzaCwgd2UgcGFzc2VkLgorICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0gIlBBU1MiOworICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgp
Ij4KKworPGlmcmFtZSBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIiBzdHlsZT0id2lkdGg6IDMw
MHB4OyBoZWlnaHQ6IDMwMHB4Ij48L2lmcmFtZT4KKworPHA+CitEb3VibGUtY2xpY2sgaW4gdGhl
IHdoaXRlIHNwYWNlIGFyb3VuZCB0aGUgaW1hZ2UgLS0gc2hvdWxkIG5vdCBjcmFzaC4KKzxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzNSI+QlVHIDI1
MzM1PC9hPi4KKzwvcD4gCisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29721</attachid>
            <date>2009-04-23 17:28:03 -0700</date>
            <delta_ts>2009-04-23 17:34:48 -0700</delta_ts>
            <desc>Check that it.atEnd() in addition to it.length() &gt; 0</desc>
            <filename>append-trailing-crash-v2.patch</filename>
            <type>text/plain</type>
            <size>3186</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9uIDQyNzUyKQor
KysgV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzAsNyArMjMwLDcgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphcHBlbmRUcmFpbGluZ1do
aQogCiAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2hhckl0KHNlYXJjaFJhbmdlLmdldCgpLCB0cnVl
KTsKIAotICAgIGZvciAoOyBjaGFySXQubGVuZ3RoKCk7IGNoYXJJdC5hZHZhbmNlKDEpKSB7Cisg
ICAgZm9yICg7ICFjaGFySXQuYXRFbmQoKSAmJiBjaGFySXQubGVuZ3RoKCk7IGNoYXJJdC5hZHZh
bmNlKDEpKSB7CiAgICAgICAgIFVDaGFyIGMgPSBjaGFySXQuY2hhcmFjdGVycygpWzBdOwogICAg
ICAgICBpZiAoIWlzU3BhY2VPck5ld2xpbmUoYykgJiYgYyAhPSBub0JyZWFrU3BhY2UpCiAgICAg
ICAgICAgICBicmVhazsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyNzk4KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDQtMjMgIEVy
aWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBhbiBhY2Nlc3MgdmlvbGF0aW9uIHdoZW4gZG91
YmxlIGNsaWNraW5nIG91dHNpZGUgb2YgYW4gaW1hZ2Ugd2hlbiB0aGUgImFwcGVuZCB0cmFpbGlu
ZyB3aGl0ZXNwYWNlIiBmZWF0dXJlIGlzIGVuYWJsZWQuCisKKyAgICAgICAgPGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzNT4KKworICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFj
ZS1pbWctY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMDktMDQtMjMgIEtldmluIE1jQ3VsbG91Z2gg
IDxrbWNjdWxsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jl
bi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEgQEAKK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2gu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7
CisgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CisgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
K30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgICAgLy8gVGhlIElGUkFNRSBoYXMgbG9hZGVkIHdpdGggYW4g
aW1hZ2UgaW4gaXQuIERvdWJsZSBjbGljaworICAgICAgICAgIC8vIGluIGFueSBvZiB0aGUgc3Bh
Y2UgYXJvdW5kIHRoZSBpbWFnZSBpbiB0aGUgSUZSQU1FLgorICAgICAgICAgIC8vIChUaGUgaW1h
Z2UgaXMgNzYgeCAxMDMgcGl4ZWxzIGJpZykuCisgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oMTUwLCAxNTApOworICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAv
LyBBcyBsb25nIGFzIGRpZG4ndCBjcmFzaCwgd2UgcGFzc2VkLgorICAgICAgICAgIGRvY3VtZW50
LmJvZHkuaW5uZXJIVE1MID0gIlBBU1MiOworICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KKworPGlmcmFtZSBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIiBz
dHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4Ij48L2lmcmFtZT4KKworPHA+CitEb3Vi
bGUtY2xpY2sgaW4gdGhlIHdoaXRlIHNwYWNlIGFyb3VuZCB0aGUgaW1hZ2UgLS0gc2hvdWxkIG5v
dCBjcmFzaC4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTMzNSI+QlVHIDI1MzM1PC9hPi4KKzwvcD4gCisKKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="14862"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29722</attachid>
            <date>2009-04-23 17:34:48 -0700</date>
            <delta_ts>2009-04-23 18:02:14 -0700</delta_ts>
            <desc>Check that it.atEnd() in addition to it.length() &gt; 0</desc>
            <filename>append-trailing-crash-v3.patch</filename>
            <type>text/plain</type>
            <size>3795</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Mjc5OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBhbiBhY2Nlc3MgdmlvbGF0aW9uIHdoZW4gZG91YmxlIGNsaWNraW5nIG91dHNpZGUgb2YgYW4g
aW1hZ2Ugd2hlbiB0aGUgImFwcGVuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIiBmZWF0dXJlIGlzIGVu
YWJsZWQuCisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTMzNT4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6YXBwZW5kVHJh
aWxpbmdXaGl0ZXNwYWNlKToKKwogMjAwOS0wNC0yMyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiA0Mjc1MikKKysrIFdlYkNvcmUvZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDcgKzIzMCw3
IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YXBwZW5kVHJhaWxpbmdXaGkKIAogICAgIENoYXJh
Y3Rlckl0ZXJhdG9yIGNoYXJJdChzZWFyY2hSYW5nZS5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBmb3Ig
KDsgY2hhckl0Lmxlbmd0aCgpOyBjaGFySXQuYWR2YW5jZSgxKSkgeworICAgIGZvciAoOyAhY2hh
ckl0LmF0RW5kKCkgJiYgY2hhckl0Lmxlbmd0aCgpOyBjaGFySXQuYWR2YW5jZSgxKSkgewogICAg
ICAgICBVQ2hhciBjID0gY2hhckl0LmNoYXJhY3RlcnMoKVswXTsKICAgICAgICAgaWYgKCFpc1Nw
YWNlT3JOZXdsaW5lKGMpICYmIGMgIT0gbm9CcmVha1NwYWNlKQogICAgICAgICAgICAgYnJlYWs7
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0Mjc5OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTA0LTIzICBFcmljIFJvbWFuICA8ZXJv
bWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSB0ZXN0IGZvciA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI1MzM1Pi4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNs
aWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbDog
QWRkZWQuCisKIDIwMDktMDQtMjMgIEtldmluIE1jQ3VsbG91Z2ggIDxrbWNjdWxsb3VnaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
b3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNl
LWltZy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1BBU1MK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3Bh
Y2UtaW1nLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2Ut
aW1nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gc3Rh
cnRUZXN0KCkgeworICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgICAgLy8gVGhlIElGUkFNRSBoYXMgbG9hZGVkIHdpdGggYW4gaW1hZ2UgaW4gaXQuIERvdWJs
ZSBjbGljaworICAgICAgICAgIC8vIGluIGFueSBvZiB0aGUgc3BhY2UgYXJvdW5kIHRoZSBpbWFn
ZSBpbiB0aGUgSUZSQU1FLgorICAgICAgICAgIC8vIChUaGUgaW1hZ2UgaXMgNzYgeCAxMDMgcGl4
ZWxzIGJpZykuCisgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAxNTApOwor
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAvLyBBcyBsb25nIGFzIGRpZG4n
dCBjcmFzaCwgd2UgcGFzc2VkLgorICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0g
IlBBU1MiOworICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4K
KworPGlmcmFtZSBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIiBzdHlsZT0id2lkdGg6IDMwMHB4
OyBoZWlnaHQ6IDMwMHB4Ij48L2lmcmFtZT4KKworPHA+CitEb3VibGUtY2xpY2sgaW4gdGhlIHdo
aXRlIHNwYWNlIGFyb3VuZCB0aGUgaW1hZ2UgLS0gc2hvdWxkIG5vdCBjcmFzaC4KKzxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzNSI+QlVHIDI1MzM1
PC9hPi4KKzwvcD4gCisKKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="14863"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29723</attachid>
            <date>2009-04-23 18:02:14 -0700</date>
            <delta_ts>2009-04-23 18:07:20 -0700</delta_ts>
            <desc>Initialize TextIterator::m_textLength to 0, to avoid accessing un-initialized memory when construction fails.</desc>
            <filename>append-trailing-crash-v4.patch</filename>
            <type>text/plain</type>
            <size>4630</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjgwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
aXRpYWxpemUgVGV4dEl0ZXJhdG9yOjptX3RleHRMZW5ndGggdG8gMC4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgYXNzdXJlcyB0aGF0IFRleHRJdGVyYXRvcjo6bGVuZ3RoKCkgd2lsbCByZXR1cm4g
MCBmb3IgY2FzZXMgd2hlbiBUZXh0SXRlcmF0b3IncyBjb25zdHJ1Y3RvciByZXR1cm5zIGVhcmx5
IChiZWNhdXNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gaXRlcmF0ZSBvdmVyIGluIHRoZSByYW5nZSku
CisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMz
NT4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWltZy1jcmFzaC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcik6CisKIDIwMDkt
MDQtMjMgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAJKHJldmlzaW9u
IDQyNzUyKQorKysgV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMyw2ICsxMDMsOCBAQCBUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcigpCiAgICAg
LCBtX2VuZENvbnRhaW5lcigwKQogICAgICwgbV9lbmRPZmZzZXQoMCkKICAgICAsIG1fcG9zaXRp
b25Ob2RlKDApCisgICAgLCBtX3RleHRDaGFyYWN0ZXJzKDApCisgICAgLCBtX3RleHRMZW5ndGgo
MCkKICAgICAsIG1fbGFzdENoYXJhY3RlcigwKQogICAgICwgbV9lbWl0Q2hhcmFjdGVyc0JldHdl
ZW5BbGxWaXNpYmxlUG9zaXRpb25zKGZhbHNlKQogICAgICwgbV9lbnRlclRleHRDb250cm9scyhm
YWxzZSkKQEAgLTExNiw2ICsxMTgsOCBAQCBUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcihjb25z
dCBSYW5nZSogCiAgICAgLCBtX2VuZENvbnRhaW5lcigwKQogICAgICwgbV9lbmRPZmZzZXQoMCkK
ICAgICAsIG1fcG9zaXRpb25Ob2RlKDApCisgICAgLCBtX3RleHRDaGFyYWN0ZXJzKDApCisgICAg
LCBtX3RleHRMZW5ndGgoMCkKICAgICAsIG1fZW1pdENoYXJhY3RlcnNCZXR3ZWVuQWxsVmlzaWJs
ZVBvc2l0aW9ucyhlbWl0Q2hhcmFjdGVyc0JldHdlZW5BbGxWaXNpYmxlUG9zaXRpb25zKQogICAg
ICwgbV9lbnRlclRleHRDb250cm9scyhlbnRlclRleHRDb250cm9scykKIHsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDQyODAyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgZm9yIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUz
MzU+LgorCisgICAgICAgIFRvIHBhc3MsIHRoaXMgdGVzdCBtdXN0IG5vdCBhY2Nlc3MgaW52YWxp
ZCBtZW1vcnkgd2hlbiBydW4gKHdvbid0IG5lY2Vzc2FyaWx5IG1hbmlmZXN0IGFzIGEgY3Jhc2gg
Zm9yIGZhaWx1cmVzKS4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbDogQWRk
ZWQuCisKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qg
Zm9yIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUzMzU+LgorCisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jh
c2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAwOS0wNC0yMyAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBzb21lIHN0
cmF5IGZpbGVzIHRoYXQgR2VvZmYgbWlzc2VkIHdoZW4gcm9sbGluZyBvdXQgY2hhbmdlcy4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2Ut
aW1nLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEgQEAKK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNs
aWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CisgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKwor
ZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgICAgLy8gVGhlIElGUkFNRSBoYXMgbG9hZGVkIHdpdGggYW4gaW1hZ2Ug
aW4gaXQuIERvdWJsZSBjbGljaworICAgICAgICAgIC8vIGluIGFueSBvZiB0aGUgc3BhY2UgYXJv
dW5kIHRoZSBpbWFnZSBpbiB0aGUgSUZSQU1FLgorICAgICAgICAgIC8vIChUaGUgaW1hZ2UgaXMg
NzYgeCAxMDMgcGl4ZWxzIGJpZykuCisgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
MTUwLCAxNTApOworICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAvLyBBcyBs
b25nIGFzIGRpZG4ndCBjcmFzaCwgd2UgcGFzc2VkLgorICAgICAgICAgIGRvY3VtZW50LmJvZHku
aW5uZXJIVE1MID0gIlBBU1MiOworICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KKworPGlmcmFtZSBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIiBzdHlsZT0i
d2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4Ij48L2lmcmFtZT4KKworPHA+CitEb3VibGUtY2xp
Y2sgaW4gdGhlIHdoaXRlIHNwYWNlIGFyb3VuZCB0aGUgaW1hZ2UgLS0gc2hvdWxkIG5vdCBjcmFz
aCBvciBhY2Nlc3MgaW52YWxpZCBtZW1vcnkuCis8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUzMzUiPkJVRyAyNTMzNTwvYT4uCis8L3A+IAorCis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29724</attachid>
            <date>2009-04-23 18:07:20 -0700</date>
            <delta_ts>2009-04-24 06:56:59 -0700</delta_ts>
            <desc>Initialize TextIterator::m_textLength to 0, to avoid accessing un-initialized memory when construction fails.</desc>
            <filename>append-trailing-crash-v5.patch</filename>
            <type>text/plain</type>
            <size>4307</size>
            <attacher name="Eric Roman">eroman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjgwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
aXRpYWxpemUgVGV4dEl0ZXJhdG9yOjptX3RleHRMZW5ndGggdG8gMC4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgYXNzdXJlcyB0aGF0IFRleHRJdGVyYXRvcjo6bGVuZ3RoKCkgd2lsbCByZXR1cm4g
MCBmb3IgY2FzZXMgd2hlbiBUZXh0SXRlcmF0b3IncyBjb25zdHJ1Y3RvciByZXR1cm5zIGVhcmx5
IChiZWNhdXNlIHRoZXJlIGlzIG5vdGhpbmcgdG8gaXRlcmF0ZSBvdmVyIGluIHRoZSByYW5nZSku
CisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMz
NT4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWltZy1jcmFzaC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcik6CisKIDIwMDkt
MDQtMjMgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAJKHJldmlzaW9u
IDQyNzUyKQorKysgV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMyw2ICsxMDMsOCBAQCBUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcigpCiAgICAg
LCBtX2VuZENvbnRhaW5lcigwKQogICAgICwgbV9lbmRPZmZzZXQoMCkKICAgICAsIG1fcG9zaXRp
b25Ob2RlKDApCisgICAgLCBtX3RleHRDaGFyYWN0ZXJzKDApCisgICAgLCBtX3RleHRMZW5ndGgo
MCkKICAgICAsIG1fbGFzdENoYXJhY3RlcigwKQogICAgICwgbV9lbWl0Q2hhcmFjdGVyc0JldHdl
ZW5BbGxWaXNpYmxlUG9zaXRpb25zKGZhbHNlKQogICAgICwgbV9lbnRlclRleHRDb250cm9scyhm
YWxzZSkKQEAgLTExNiw2ICsxMTgsOCBAQCBUZXh0SXRlcmF0b3I6OlRleHRJdGVyYXRvcihjb25z
dCBSYW5nZSogCiAgICAgLCBtX2VuZENvbnRhaW5lcigwKQogICAgICwgbV9lbmRPZmZzZXQoMCkK
ICAgICAsIG1fcG9zaXRpb25Ob2RlKDApCisgICAgLCBtX3RleHRDaGFyYWN0ZXJzKDApCisgICAg
LCBtX3RleHRMZW5ndGgoMCkKICAgICAsIG1fZW1pdENoYXJhY3RlcnNCZXR3ZWVuQWxsVmlzaWJs
ZVBvc2l0aW9ucyhlbWl0Q2hhcmFjdGVyc0JldHdlZW5BbGxWaXNpYmxlUG9zaXRpb25zKQogICAg
ICwgbV9lbnRlclRleHRDb250cm9scyhlbnRlclRleHRDb250cm9scykKIHsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDQyODAyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDQtMjMgIEVyaWMgUm9tYW4gIDxlcm9tYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgZm9yIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUz
MzU+LgorCisgICAgICAgIFRvIHBhc3MsIHRoaXMgdGVzdCBtdXN0IG5vdCBhY2Nlc3MgaW52YWxp
ZCBtZW1vcnkgd2hlbiBydW4gKHdvbid0IG5lY2Vzc2FyaWx5IG1hbmlmZXN0IGFzIGEgY3Jhc2gg
Zm9yIGZhaWx1cmVzKS4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UtaW1nLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbDogQWRk
ZWQuCisKIDIwMDktMDQtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZWQgc29tZSBzdHJheSBmaWxlcyB0aGF0IEdlb2ZmIG1pc3NlZCB3aGVuIHJvbGxp
bmcgb3V0IGNoYW5nZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWct
Y3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2gtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3Bh
Y2UtaW1nLWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpOworICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgIC8vIFRoZSBJRlJBTUUgaGFzIGxv
YWRlZCB3aXRoIGFuIGltYWdlIGluIGl0LiBEb3VibGUgY2xpY2sKKyAgICAgICAgICAvLyBpbiBh
bnkgb2YgdGhlIHNwYWNlIGFyb3VuZCB0aGUgaW1hZ2UgaW4gdGhlIElGUkFNRS4KKyAgICAgICAg
ICAvLyAoVGhlIGltYWdlIGlzIDc2IHggMTAzIHBpeGVscyBiaWcpLgorICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDE1MCwgMTUwKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
CisgICAgICAgICAgLy8gQXMgbG9uZyBhcyBkaWRuJ3QgY3Jhc2gsIHdlIHBhc3NlZC4KKyAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+CisKKzxpZnJhbWUgc3JjPSIuLi9yZXNvdXJj
ZXMvYWJlLnBuZyIgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweCI+PC9pZnJhbWU+
CisKKzxwPgorRG91YmxlLWNsaWNrIGluIHRoZSB3aGl0ZSBzcGFjZSBhcm91bmQgdGhlIGltYWdl
IC0tIHNob3VsZCBub3QgY3Jhc2ggb3IgYWNjZXNzIGludmFsaWQgbWVtb3J5LgorPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzM1Ij5CVUcgMjUzMzU8
L2E+LgorPC9wPiAKKworPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="14865"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>