<?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>16076</bug_id>
          
          <creation_ts>2007-11-20 16:31:41 -0800</creation_ts>
          <short_desc>DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities</short_desc>
          <delta_ts>2019-02-06 09:04:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar, YahooBug</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Kaull">bkaull</reporter>
          <assigned_to name="Mark Rowe (bdash)">mrowe</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>61862</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Kaull">bkaull</who>
    <bug_when>2007-11-20 16:31:41 -0800</bug_when>
    <thetext>Calling DOMParser.parseFromString can freeze safari for a long time when the xml that is trying to be parsed contains at least one node that is extremely large and has many xml-safe characters (ie.
&quot;&amp;amp;&quot;, &quot;&amp;lt;&quot;, &quot;&amp;gt;&quot;, &quot;&amp;quot;&quot;, &quot;&amp;apos;&quot;).  By large, I mean at least 10,000 repetitions of text:

For example
1. This is a long &amp;amp; boring message.
2. This is a long &amp;amp; boring message.
...
10000. This is a long &amp;amp; boring message.

(new DOMParser()).parseFromString( xml, &quot;text/xml&quot; );

The larger the number of repitions, the longer it takes to parse.  Right now I&apos;m seeing numbers such as:
5,000 reps  = ~1 sec
10,000 reps = ~7 sec
20,000 reps = ~32 sec
If the text of the node doesn&apos;t have any xml safe characters, the parsing runs very quickly, generally less than a second.  I&apos;m going to attach an example page that has several tests that parse large sample xml text.  I have run this test on Firefox 2(PC &amp; Mac) and IE7 and the numbers for the tests there are never over 3 seconds for even the largest test, 100,000 reps.

I&apos;ve been testing with Safari 3.0.4 (523.12) and WebKit r27930</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61863</commentid>
    <comment_count>1</comment_count>
      <attachid>17422</attachid>
    <who name="Brian Kaull">bkaull</who>
    <bug_when>2007-11-20 16:37:54 -0800</bug_when>
    <thetext>Created attachment 17422
Slow XML Parsing Test

These tests create large amounts of xml and parse that xml using:
(new DOMParser()).parseFromString( xml, &quot;text/xml&quot; );

Note: If the text of the node is wrapped in CDATA the parsing times are extremely fast.

Note: If the text of the node is large and there are no xml-safe characters the parsing times are very fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61868</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-20 17:43:23 -0800</bug_when>
    <thetext>This test case seems to show O(N^2) behavior:

5,000 - 0.682sec
10,000 - 6.547sec
20,000 - 33.04sec


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61869</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-20 17:44:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/5609579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61872</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-20 18:56:43 -0800</bug_when>
    <thetext>A Shark profile shows that &gt; 90% of the time is spent in memcpy.  This appears to be due to the naive implementation of StringImpl::append(UChar*, unsigned) that allocates and copies on every append rather than growing more gracefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61878</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-11-20 20:14:50 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; A Shark profile shows that &gt; 90% of the time is spent in memcpy.  This appears
&gt; to be due to the naive implementation of StringImpl::append(UChar*, unsigned)
&gt; that allocates and copies on every append rather than growing more gracefully.

While fixing StringImpl::append would be nice, perhaps in this specific case we could use a Vector&lt;UChar&gt; and String::adopt(), as we do in other places in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61879</commentid>
    <comment_count>6</comment_count>
      <attachid>17425</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-20 22:47:08 -0800</bug_when>
    <thetext>Created attachment 17425
Patch

This patch causes the largest case in the test document to take around 0.18 seconds on my MacBook Pro, down from several minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61880</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-20 22:48:03 -0800</bug_when>
    <thetext>I did not create a layout test because I&apos;m unsure how this could be tested without being timing dependent. I&apos;d rather not introduce another layout test that fails on slower machines or when run under guard malloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61881</commentid>
    <comment_count>8</comment_count>
      <attachid>17425</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-11-20 22:48:43 -0800</bug_when>
    <thetext>Comment on attachment 17425
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61883</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-11-20 23:11:17 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; While fixing StringImpl::append would be nice, 

I actually think that we should eventually get rid of it - no need to make String identical to Vector in implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61884</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-11-20 23:30:45 -0800</bug_when>
    <thetext>Landed in r27936.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503134</commentid>
    <comment_count>11</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:04:15 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>17422</attachid>
            <date>2007-11-20 16:37:54 -0800</date>
            <delta_ts>2007-11-20 16:37:54 -0800</delta_ts>
            <desc>Slow XML Parsing Test</desc>
            <filename>parse.html</filename>
            <type>text/html</type>
            <size>2378</size>
            <attacher name="Brian Kaull">bkaull</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8aGVhZD4NCgk8dGl0bGU+TGFyZ2UgWE1MIFBhcnNpbmc8L3RpdGxlPg0KCTxtZXRh
IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0
Zi04IiAvPg0KCTxzdHlsZT4NCgkJaDQge3BhZGRpbmc6NXB4IDA7bWFyZ2luOjVweCAwO2JvcmRl
ci10b3A6MXB4IHNvbGlkICM4ZDhkOGQ7fQ0KCTwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keT4NCgk8
c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4NCglmdW5jdGlvbiBwYXJzZVhtbChuQ3QpDQoJ
ew0KCQl2YXIgb0RvbSwgeG1sLCBpZHgsIG5TdGFydCwgbkVuZDsNCgkJdmFyIGJVc2VDZGF0YQk9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZGF0YSIpLmNoZWNrZWQ7DQoNCgkJZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN0YXR1cyIpLmlubmVySFRNTAk9ICJzdGFydCI7DQoNCgkJeG1sCT0g
WyhiVXNlQ2RhdGEpID8gIjxyb290PjwhW0NEQVRBWyIgOiAiPHJvb3Q+Il07DQoJCWZvciAoIGlk
eCA9IDE7IGlkeCA8PSBuQ3Q7IGlkeCsrICkgew0KCQkJeG1sW2lkeF0JPSBpZHggKyAiLiBUaGlz
IGlzIGEgbG9uZyAmYW1wO2FtcDsgYm9yaW5nIG1lc3NhZ2UuIjsNCgkJfQ0KCQl4bWxbaWR4XQk9
IChiVXNlQ2RhdGEpID8gIl1dPjwvcm9vdD4iIDogIjwvcm9vdD4iOw0KCQl4bWwJCQk9IHhtbC5q
b2luICggIiIgKTsNCgkJDQoJCW5TdGFydAk9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7DQoJCWlm
ICggdHlwZW9mIEFjdGl2ZVhPYmplY3QgIT0gInVuZGVmaW5lZCIgKSB7DQoJCQlvRG9tCT0gbmV3
IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5ET01Eb2N1bWVudC4zLjAiKTsNCgkJCW9Eb20ubG9hZFhN
TCh4bWwpOw0KCQl9IGVsc2Ugew0KCQkJb0RvbQk9ICggbmV3IERPTVBhcnNlcigpICkucGFyc2VG
cm9tU3RyaW5nKCB4bWwsICJ0ZXh0L3htbCIgKTsNCgkJfTsNCgkJbkVuZAk9IChuZXcgRGF0ZSgp
KS5nZXRUaW1lKCk7DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXJzZVRpbWUiKS5pbm5l
ckhUTUwJPSAobkVuZCAtIG5TdGFydCkgLyAxMDAwOw0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic3RhdHVzIikuaW5uZXJIVE1MCT0gImRvbmUiOw0KCX07DQogICAgPC9zY3JpcHQ+DQoJPGgy
PkxhcmdlIFhNTCBQYXJzaW5nPC9oMj4NCgk8aDQ+RWFjaCBvZiB0aGVzZSB0ZXN0cyBjcmVhdGVz
IGEgc3RyaW5nIG9mIFhNTCB3aXRoIG9uZSBsYXJnZSByb290IG5vZGUgdGhhdCBjb250YWlucyBh
IHN0cmluZyByZXBlYXRlZCB4IHRpbWVzLiAgRE9NUGFyc2VyLnBhcnNlRnJvbVN0cmluZyBpcyB0
aGVuIHVzZWQgdG8gY3JlYXRlIGEgRE9NLjwvaDQ+DQoJR2VuZXJhdGVkIFhNTCBleGFtcGxlOjxi
cj4NCgkmbHQ7cm9vdD4xLiBUaGlzIGlzIGEgbG9uZyAmYW1wO2FtcDsgYm9yaW5nIG1lc3NhZ2Uu
ICAuLi4gIDEwMDAwLiBUaGlzIGlzIGEgbG9uZyAmYW1wO2FtcDsgYm9yaW5nIG1lc3NhZ2UuJmx0
Oy9yb290Pjxicj48YnI+DQoJPGlucHV0IHR5cGU9IkNoZWNrYm94IiBpZD0iY2RhdGEiPiBFbmNs
b3NlIHRoZSB0ZXh0IHdpdGggYSBDREFUQSB0YWcuIChXaXRoIHRoaXMgY2hlY2tlZCwgYWxsIHRp
bWVzIGFyZSBsZXNzIHRoYW4gb25lIHNlY29uZCk8YnI+DQoJJmx0O3Jvb3Q+Jmx0OyFbQ0RBVEFb
MS4gVGhpcyBpcyBhIGxvbmcgJmFtcDthbXA7IGJvcmluZyBtZXNzYWdlLiAgLi4uICAxMDAwMC4g
VGhpcyBpcyBhIGxvbmcgJmFtcDthbXA7IGJvcmluZyBtZXNzYWdlLl1dPiZsdDsvcm9vdD48YnI+
PGJyPg0KCTxpbnB1dCB0eXBlPWJ1dHRvbiB2YWx1ZT0icGFyc2UgNSwwMDAiIG9uY2xpY2s9InBh
cnNlWG1sKDUwMDApOyIgLz48YnI+PGJyPg0KCTxpbnB1dCB0eXBlPWJ1dHRvbiB2YWx1ZT0icGFy
c2UgMTAsMDAwIiBvbmNsaWNrPSJwYXJzZVhtbCgxMDAwMCk7IiAvPjxicj48YnI+DQoJPGlucHV0
IHR5cGU9YnV0dG9uIHZhbHVlPSJwYXJzZSAyMCwwMDAiIG9uY2xpY2s9InBhcnNlWG1sKDIwMDAw
KTsiIC8+PGJyPjxicj4NCgk8aW5wdXQgdHlwZT1idXR0b24gdmFsdWU9InBhcnNlIDUwLDAwMCIg
b25jbGljaz0icGFyc2VYbWwoNTAwMDApOyIgLz4gPC0tIENhcmVmdWwsIHRoaXMgZnJlZXplcyBT
YWZhcmkgZm9yIGEgd2hpbGU8YnI+PGJyPg0KCTxpbnB1dCB0eXBlPWJ1dHRvbiB2YWx1ZT0icGFy
c2UgMTAwLDAwMCIgb25jbGljaz0icGFyc2VYbWwoMTAwMDAwKTsiIC8+IDwtLSBDYXJlZnVsLCB0
aGlzIGZyZWV6ZXMgU2FmYXJpIGZvciBhIExPTkcgVElNRSAofjItNCBtaW4pPGJyPjxicj4NCgk8
ZGl2IGlkPSJzdGF0dXMiPjwvZGl2Pg0KCTxkaXY+UGFyc2UgVGltZTogPHNwYW4gaWQ9InBhcnNl
VGltZSI+MDwvc3Bhbj5zZWM8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17425</attachid>
            <date>2007-11-20 22:47:08 -0800</date>
            <delta_ts>2007-11-20 22:48:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-rdar-5609579-v1.patch</filename>
            <type>text/plain</type>
            <size>5471</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzQ2ZjkxMi4uYTIzOWVlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAwNy0xMS0yMCAgTWFyayBSb3dlICA8
bXJvd2VAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCA8cmRhcjovL3Byb2JsZW0vNTYwOTU3OT4gKERPTVBhcnNlcigpLnBhcnNl
RnJvbVN0cmluZygpIGZyZWV6ZXMgU2FmYXJpIHdoZW4gcGFyc2luZyBsYXJnZSBub2RlcyB3aXRo
IFhNTCBlbnRpdGllcykKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYwNzYKKworICAgICAgICBYTUxUb2tlbml6ZXIgd2FzIGNhbGxpbmcgQ2hhcmFjdGVy
RGF0YTo6YXBwZW5kRGF0YSB0d2ljZSBwZXIgZW50aXR5IGluIHRoZSBmcmFnbWVudCBvZiBYTUwg
YmVpbmcKKyAgICAgICAgcGFyc2VkIChvbmNlIGZvciB0ZXh0IGJlZm9yZSB0aGUgZW50aXR5LCBv
bmNlIGZvciB0aGUgZW50aXR5IGl0c2VsZikuICBUaGlzIHRyaWdnZXJlZCBPKG5eMikgY29weWlu
ZworICAgICAgICBvZiB0aGUgQ2hhcmFjdGVyRGF0YSdzIHN0cmluZyBkdWUgdG8gcmVzaXppbmcu
ICBXZSBub3cgcHJldmVudCB0aGlzIGhhcHBlbmluZyBieSBidWZmZXJpbmcgYWxsIHRoZQorICAg
ICAgICBjb250ZW50IGZvciBhIGdpdmVuIFRleHQgbm9kZSBpbiB0aGUgWE1MVG9rZW5pemVyIGJl
Zm9yZSBzZW5kaW5nIGl0IG91dCB0byB0aGUgbm9kZSBpbiBhIHNpbmdsZSBnby4KKworICAgICAg
ICAqIGRvbS9YTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW5pemVy
OjpjaGFyYWN0ZXJzKTogQXBwZW5kIHRoZSBjaGFyYWN0ZXJzIHRvIHRoZSBidWZmZXIuCisgICAg
ICAgIChXZWJDb3JlOjpYTUxUb2tlbml6ZXI6OmVuZERvY3VtZW50KTogRW5zdXJlIHRoZSBidWZm
ZXIgaXMgZmx1c2hlZCB3aGVuIHRoZSBkb2N1bWVudCBoYXMgZW5kZWQuCisgICAgICAgIChXZWJD
b3JlOjplbmREb2N1bWVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW5pemVy
OjplbnRlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW5pemVyOjpleGl0VGV4dCk6
IEFwcGVuZCB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlciB0byB0aGUgbm9kZS4KKyAgICAgICAg
KFdlYkNvcmU6OlhNTFRva2VuaXplcjo6aW5pdGlhbGl6ZVBhcnNlckNvbnRleHQpOiBBZGQgdGhl
IGVuZERvY3VtZW50IGhhbmRsZXIuCisgICAgICAgIChXZWJDb3JlOjpwYXJzZVhNTERvY3VtZW50
RnJhZ21lbnQpOiBGb3JjZSBlbmREb2N1bWVudCB0byBiZSBjYWxsZWQgd2hlbiBwYXJzaW5nIGEg
ZnJhZ21lbnQgdG8gZW5zdXJlCisgICAgICAgIHRoYXQgdGhlIGJ1ZmZlciBnZXRzIGZsdXNoZWQg
dG8gdGhlIG5vZGUuCisgICAgICAgICogZG9tL1hNTFRva2VuaXplci5oOgorCisyMDA3LTExLTIw
ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgU2Ft
IFdlaW5pZy4KIAogICAgICAgICBGaXggaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYwNzQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTFRva2VuaXplci5jcHAgYi9X
ZWJDb3JlL2RvbS9YTUxUb2tlbml6ZXIuY3BwCmluZGV4IGJiNDhkZmMuLjY1ZmU0YTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL1hNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1M
VG9rZW5pemVyLmNwcApAQCAtODY0LDEwICs4NjQsOCBAQCB2b2lkIFhNTFRva2VuaXplcjo6Y2hh
cmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIGlmIChtX2N1cnJlbnROb2RlLT5pc1RleHROb2RlKCkgfHwgZW50ZXJUZXh0
KCkpIHsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIHN0YXRpY19jYXN0
PFRleHQqPihtX2N1cnJlbnROb2RlKS0+YXBwZW5kRGF0YSh0b1N0cmluZyhzLCBsZW4pLCBlYyk7
Ci0gICAgfQorICAgIGlmIChtX2N1cnJlbnROb2RlLT5pc1RleHROb2RlKCkgfHwgZW50ZXJUZXh0
KCkpCisgICAgICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChzLCBsZW4pOwogfQogCiB2b2lkIFhN
TFRva2VuaXplcjo6ZXJyb3IoRXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZh
X2xpc3QgYXJncykKQEAgLTk3OSw2ICs5NzcsMTEgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OnN0YXJ0
RG9jdW1lbnQoY29uc3QgeG1sQ2hhciogdmVyc2lvbiwgY29uc3QgeG1sQ2hhciogZW5jb2RpbmcK
ICAgICAgICAgbV9kb2MtPnNldFhNTEVuY29kaW5nKHRvU3RyaW5nKGVuY29kaW5nKSk7CiB9CiAK
K3ZvaWQgWE1MVG9rZW5pemVyOjplbmREb2N1bWVudCgpCit7CisgICAgZXhpdFRleHQoKTsKK30K
Kwogdm9pZCBYTUxUb2tlbml6ZXI6OmludGVybmFsU3Vic2V0KGNvbnN0IHhtbENoYXIqIG5hbWUs
IGNvbnN0IHhtbENoYXIqIGV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIqIHN5c3RlbUlEKQogewog
ICAgIGlmIChtX3BhcnNlclN0b3BwZWQpCkBAIC0xMTM3LDYgKzExNDAsMTIgQEAgc3RhdGljIHZv
aWQgc3RhcnREb2N1bWVudEhhbmRsZXIodm9pZCogY2xvc3VyZSkKICAgICB4bWxTQVgyU3RhcnRE
b2N1bWVudChjbG9zdXJlKTsKIH0KIAorc3RhdGljIHZvaWQgZW5kRG9jdW1lbnRIYW5kbGVyKHZv
aWQqIGNsb3N1cmUpCit7CisgICAgZ2V0VG9rZW5pemVyKGNsb3N1cmUpLT5lbmREb2N1bWVudCgp
OworICAgIHhtbFNBWDJFbmREb2N1bWVudChjbG9zdXJlKTsKK30KKwogc3RhdGljIHZvaWQgaW50
ZXJuYWxTdWJzZXRIYW5kbGVyKHZvaWQqIGNsb3N1cmUsIGNvbnN0IHhtbENoYXIqIG5hbWUsIGNv
bnN0IHhtbENoYXIqIGV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIqIHN5c3RlbUlEKQogewogICAg
IGdldFRva2VuaXplcihjbG9zdXJlKS0+aW50ZXJuYWxTdWJzZXQobmFtZSwgZXh0ZXJuYWxJRCwg
c3lzdGVtSUQpOwpAQCAtMTE5MSw2ICsxMjAwLDkgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmhhbmRs
ZUVycm9yKEVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtLCBpbnQgbGluZU51bWJlciwgaW4K
IAogYm9vbCBYTUxUb2tlbml6ZXI6OmVudGVyVGV4dCgpCiB7CisjaWZuZGVmIFVTRV9RWE1MU1RS
RUFNCisgICAgQVNTRVJUKG1fYnVmZmVyZWRUZXh0LnNpemUoKSA9PSAwKTsKKyNlbmRpZgogICAg
IFJlZlB0cjxOb2RlPiBuZXdOb2RlID0gbmV3IFRleHQobV9kb2MsICIiKTsKICAgICBpZiAoIW1f
Y3VycmVudE5vZGUtPmFkZENoaWxkKG5ld05vZGUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xMjA2LDYgKzEyMTgsMTMgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmV4aXRUZXh0KCkK
ICAgICBpZiAoIW1fY3VycmVudE5vZGUgfHwgIW1fY3VycmVudE5vZGUtPmlzVGV4dE5vZGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCisjaWZuZGVmIFVTRV9RWE1MU1RSRUFNCisgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisgICAgc3RhdGljX2Nhc3Q8VGV4dCo+KG1fY3VycmVudE5vZGUpLT5hcHBl
bmREYXRhKHRvU3RyaW5nKG1fYnVmZmVyZWRUZXh0LmRhdGEoKSwgbV9idWZmZXJlZFRleHQuc2l6
ZSgpKSwgZWMpOworICAgIFZlY3Rvcjx4bWxDaGFyPiBlbXB0eTsKKyAgICBtX2J1ZmZlcmVkVGV4
dC5zd2FwKGVtcHR5KTsKKyNlbmRpZgorCiAgICAgaWYgKG1fdmlldyAmJiBtX2N1cnJlbnROb2Rl
ICYmICFtX2N1cnJlbnROb2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBtX2N1cnJlbnROb2RlLT5h
dHRhY2goKTsKIApAQCAtMTIzMSw2ICsxMjUwLDcgQEAgdm9pZCBYTUxUb2tlbml6ZXI6OmluaXRp
YWxpemVQYXJzZXJDb250ZXh0KCkKICAgICBzYXguZW5kRWxlbWVudE5zID0gZW5kRWxlbWVudE5z
SGFuZGxlcjsKICAgICBzYXguZ2V0RW50aXR5ID0gZ2V0RW50aXR5SGFuZGxlcjsKICAgICBzYXgu
c3RhcnREb2N1bWVudCA9IHN0YXJ0RG9jdW1lbnRIYW5kbGVyOworICAgIHNheC5lbmREb2N1bWVu
dCA9IGVuZERvY3VtZW50SGFuZGxlcjsKICAgICBzYXguaW50ZXJuYWxTdWJzZXQgPSBpbnRlcm5h
bFN1YnNldEhhbmRsZXI7CiAgICAgc2F4LmV4dGVybmFsU3Vic2V0ID0gZXh0ZXJuYWxTdWJzZXRI
YW5kbGVyOwogICAgIHNheC5pZ25vcmFibGVXaGl0ZXNwYWNlID0gaWdub3JhYmxlV2hpdGVzcGFj
ZUhhbmRsZXI7CkBAIC0xNTYwLDYgKzE1ODAsNyBAQCBib29sIHBhcnNlWE1MRG9jdW1lbnRGcmFn
bWVudChjb25zdCBTdHJpbmcmIHN0cmluZywgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsCiAg
ICAgc2F4LmluaXRpYWxpemVkID0gWE1MX1NBWDJfTUFHSUM7CiAgICAgCiAgICAgaW50IHJlc3Vs
dCA9IHhtbFBhcnNlQmFsYW5jZWRDaHVua01lbW9yeSgwLCAmc2F4LCAmdG9rZW5pemVyLCAwLCAo
Y29uc3QgeG1sQ2hhciopc3RyaW5nLnV0ZjgoKS5kYXRhKCksIDApOworICAgIHRva2VuaXplci5l
bmREb2N1bWVudCgpOwogICAgIHJldHVybiByZXN1bHQgPT0gMDsKICNlbHNlCiAgICAgdG9rZW5p
emVyLndyaXRlKFN0cmluZygiPHF4bWxzdHJlYW1kdW1teWVsZW1lbnQ+IiksIGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTFRva2VuaXplci5oIGIvV2ViQ29yZS9kb20vWE1MVG9r
ZW5pemVyLmgKaW5kZXggYTU5NWQ1MS4uMjZmNDBjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
WE1MVG9rZW5pemVyLmgKKysrIGIvV2ViQ29yZS9kb20vWE1MVG9rZW5pemVyLmgKQEAgLTk0LDYg
Kzk0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvbW1lbnQoY29uc3Qg
eG1sQ2hhciogcyk7CiAgICAgICAgIHZvaWQgc3RhcnREb2N1bWVudChjb25zdCB4bWxDaGFyKiB2
ZXJzaW9uLCBjb25zdCB4bWxDaGFyKiBlbmNvZGluZywgaW50IHN0YW5kYWxvbmUpOwogICAgICAg
ICB2b2lkIGludGVybmFsU3Vic2V0KGNvbnN0IHhtbENoYXIqIG5hbWUsIGNvbnN0IHhtbENoYXIq
IGV4dGVybmFsSUQsIGNvbnN0IHhtbENoYXIqIHN5c3RlbUlEKTsKKyAgICAgICAgdm9pZCBlbmRE
b2N1bWVudCgpOwogI2Vsc2UKICAgICAgICAgdm9pZCBwYXJzZSgpOwogICAgICAgICB2b2lkIHN0
YXJ0RG9jdW1lbnQoKTsKQEAgLTE2Myw2ICsxNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFByZWZpeEZvck5hbWVzcGFjZU1hcCBtX3ByZWZpeFRvTmFtZXNwYWNlTWFwOwogI2lm
bmRlZiBVU0VfUVhNTFNUUkVBTQogICAgICAgICBPd25QdHI8UGVuZGluZ0NhbGxiYWNrcz4gbV9w
ZW5kaW5nQ2FsbGJhY2tzOworICAgICAgICBWZWN0b3I8eG1sQ2hhcj4gbV9idWZmZXJlZFRleHQ7
CiAjZW5kaWYKICAgICAgICAgU2VnbWVudGVkU3RyaW5nIG1fcGVuZGluZ1NyYzsKICAgICB9Owo=
</data>
<flag name="review"
          id="7472"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>