<?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>102183</bug_id>
          
          <creation_ts>2012-11-13 23:16:13 -0800</creation_ts>
          <short_desc>REGRESSION(r134495): It made svg/custom/use-instanceRoot-event-listeners.xhtml fail and fast/events/attribute-listener-deletion-crash.html timeout</short_desc>
          <delta_ts>2026-04-01 09:30:30 -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>New Bugs</component>
          <version>420+</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79666</blocked>
    
    <blocked>79668</blocked>
    
    <blocked>101985</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>ossy</cc>
    
    <cc>wjdybdhalbady</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>766477</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-13 23:16:13 -0800</bug_when>
    <thetext>on all ports:

--- /Volumes/Data/slave/lion-release-tests-wk1/build/layout-test-results/svg/custom/use-instanceRoot-event-listeners-expected.txt
+++ /Volumes/Data/slave/lion-release-tests-wk1/build/layout-test-results/svg/custom/use-instanceRoot-event-listeners-actual.txt
@@ -6,8 +6,10 @@
 Test 1 / 8 PASSED
 Test 2 / 8 PASSED
 Test 3 / 8 PASSED
+Test 4 / 8 FAILED (expected: &apos;mouseup&apos; actual: &apos;mousedown&apos;)
 Test 4 / 8 PASSED
 Test 5 / 8 PASSED
+Test 6 / 8 FAILED (expected: &apos;mouseup&apos; actual: &apos;mousedown&apos;)
 Test 6 / 8 PASSED
 Test 7 / 8 PASSED
 Test 8 / 8 PASSED


--- /Volumes/Data/slave/lion-release-tests-wk1/build/layout-test-results/fast/events/attribute-listener-deletion-crash-expected.txt
+++ /Volumes/Data/slave/lion-release-tests-wk1/build/layout-test-results/fast/events/attribute-listener-deletion-crash-actual.txt
@@ -18,4 +18,39416 @@
 CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
 CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
 CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
-PASS
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected token &apos;|&apos;
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766486</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-13 23:21:00 -0800</bug_when>
    <thetext>I skipped them on Qt to paint the bots green - r134554.
Please unskip them with the proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766491</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-13 23:27:09 -0800</bug_when>
    <thetext>I thought these were pre-existing test failures, but I&apos;ll investigate and double check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766510</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-13 23:49:34 -0800</bug_when>
    <thetext>I&apos;ve reproduced the regression.  Investigating for the fix now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766623</commentid>
    <comment_count>4</comment_count>
      <attachid>174107</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-14 01:41:01 -0800</bug_when>
    <thetext>Created attachment 174107
Fix.

EventListenerMap::remove() relies on Vector::find() to find the event listener to remove.  For listeners whose m_wrapper and m_jsFunction are both uninitialized (still 0) as in the case of lazy event listeners, the m_wrapper null check broke this.

The fix is to add a pointer check.  If the addresses of the 2 event listeners being compared are the same, then the 2 must be the same.  Hence, we can return true for JSEventListener::operator==() in this case.

Note: previously, operator==() would simply compare the values of m_jsFunction and m_isAttribute.  With lazy event listeners, it is possible that multiple listeners will have a NULL m_jsFunction, and it is not too improbable that their m_isAttribute is also the same (since it is a boolean).  In that previous case, there could be a false positive, and EventListenerMap::remove() could inadvertently remove the wrong lazy event listener simply because its m_jsFunction wasn&apos;t realized yet at the time.  This false positive could result in incorrect behavior (realizing the wrong lazy function) and possibly corrupted memory (this part is conjecture ... I&apos;m not certain of it). 

Similarly, in the current state of the code (after the addition of the null check for m_wrapper), I don&apos;t think, when m_jsFunction is 0, that comparing m_jsFunction and m_isAttribute is an adequate test for identifying the listener EventListenerMap::remove() is searching for.  Instead, the solution I&apos;m applying to simply compare the addresses of the 2 listeners is guaranteed to be correct if the 2 addresses are the same.  At worst, we will get a false negative which can result in a leak (the listener cannot be removed), but it will not cause incorrect behavior nor corrupt memory.

However, the API for removeEventListener() (from the EventTarget down) requires the address of the event listener as an arg.  Note that both the constructors of JSEventListener and JSLazyEventListener are protected and private respectively.  The only way to make one of these listeners is to call a create() factory method.  This suggests that it is not likely that a client would construct another instance of JSEventListener (or the lazy one) just to use it for comparison in removeEventListener().  Hence, it is unlikely that we&apos;ll see false negatives from comparing the addresses of listeners.

At any rate, with this patch does fix the regressions, and the webkit tests are happy again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766625</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-14 01:42:05 -0800</bug_when>
    <thetext>Oh ... and thanks to Csaba for identifying and reporting the regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766647</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-14 02:00:41 -0800</bug_when>
    <thetext>Ref: &lt;rdar://problem/12698338&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766679</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-14 02:41:49 -0800</bug_when>
    <thetext>Thanks for the quick fix, all tests pass for me on Qt with it.
Please _unskip_ these tests on Qt when you land the patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767257</commentid>
    <comment_count>8</comment_count>
      <attachid>174248</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-14 13:48:31 -0800</bug_when>
    <thetext>Created attachment 174248
A more appropriate fix.

This patch has a more appropriate fix that conforms to the contract that when JSEventListener::m_wrapper is 0, we expect JSEventListener::m_jsFunction to be 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767264</commentid>
    <comment_count>9</comment_count>
      <attachid>174248</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-14 13:52:05 -0800</bug_when>
    <thetext>Comment on attachment 174248
A more appropriate fix.

View in context: https://bugs.webkit.org/attachment.cgi?id=174248&amp;action=review

r=me

&gt; Source/WebCore/bindings/js/JSEventListener.cpp:169
&gt; +        // accessed. m_jsFunction should effectively be 0 in that case.
&gt; +        JSC::JSObject* jsFunction = m_wrapper ? m_jsFunction.get() : 0;

The duplication of this functionality and commentary suggests that a helper function is in order. I won&apos;t require that here since you&apos;ve posted a follow-up patch that obsoletes this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767294</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-14 14:09:28 -0800</bug_when>
    <thetext>Fix landed in r134666: &lt;http://trac.webkit.org/changeset/134666&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767998</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-11-15 06:09:58 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Fix landed in r134666: &lt;http://trac.webkit.org/changeset/134666&gt;.

and unskip landed in http://trac.webkit.org/changeset/134768</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174107</attachid>
            <date>2012-11-14 01:41:01 -0800</date>
            <delta_ts>2012-11-14 13:48:31 -0800</delta_ts>
            <desc>Fix.</desc>
            <filename>bug-102183.patch</filename>
            <type>text/plain</type>
            <size>1746</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDU2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTE0ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXhlZCByZWdyZXNzaW9ucyBkdWUg
dG8gYWRkaW5nIEpTRXZlbnRMaXN0ZW5lcjo6bV93cmFwcGVyIG51bGwgY2hlY2tzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTgzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZW50TGlzdGVuZXJN
YXA6OnJlbW92ZSgpIHJlbGllcyBvbiBWZWN0b3I6OmZpbmQoKSB0byBmaW5kIHRoZSBldmVudAor
ICAgICAgICBsaXN0ZW5lciB0byByZW1vdmUuIEZvciBsaXN0ZW5lcnMgd2hvc2UgbV93cmFwcGVy
IGFuZCBtX2pzRnVuY3Rpb24KKyAgICAgICAgYXJlIGJvdGggdW5pbml0aWFsaXplZCAoc3RpbGwg
MCkgYXMgaW4gdGhlIGNhc2Ugb2YgbGF6eSBldmVudAorICAgICAgICBsaXN0ZW5lcnMsIHRoZSBt
X3dyYXBwZXIgbnVsbCBjaGVjayBicm9rZSB0aGlzLiBUaGUgZml4IGlzIHRvIGFkZAorICAgICAg
ICBhIHBvaW50ZXIgY2hlY2suIElmIHRoZSBhZGRyZXNzZXMgb2YgdGhlIDIgZXZlbnQgbGlzdGVu
ZXJzIGJlaW5nCisgICAgICAgIGNvbXBhcmVkIGFyZSB0aGUgc2FtZSwgdGhlbiB0aGUgMiBtdXN0
IGJlIHRoZSBzYW1lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlz
dGVuZXI6Om9wZXJhdG9yPT0pOgorCiAyMDEyLTExLTE0ICBLZW50YXJvIEhhcmEgIDxoYXJha2Vu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIERPTSB3cmFwcGVyIG9iamVjdHMgc2hvdWxk
IGJlIGNvbGxlY3RlZCBpbiBtaW5vciBHQyBjeWNsZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNpb24gMTM0NTQyKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYzLDYgKzE2MywxMCBAQCBib29sIEpTRXZlbnRMaXN0ZW5lcjo6dmlydHVhbGlz
QXR0cmlidXRlCiAKIGJvb2wgSlNFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyKQogeworICAgIC8vIElmIHdlJ3ZlIGdvdCB0aGUgc2FtZSBhZGRy
ZXNzLCB3ZSBtdXN0IGJlIHRoZSBzYW1lLgorICAgIGlmICh0aGlzID09ICZsaXN0ZW5lcikKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKICAgICAvLyBJZiBtX3dyYXBwZXIgaXMgMCwgdGhlbiBqc0Z1
bmN0aW9uIGlzIHpvbWJpZWQsIGFuZCBzaG91bGQgbmV2ZXIgYmUgYWNjZXNzZWQuCiAgICAgaWYg
KCFtX3dyYXBwZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174248</attachid>
            <date>2012-11-14 13:48:31 -0800</date>
            <delta_ts>2012-11-14 13:52:05 -0800</delta_ts>
            <desc>A more appropriate fix.</desc>
            <filename>bug-102183.patch</filename>
            <type>text/plain</type>
            <size>3291</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDY1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTE0ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXhlZCByZWdyZXNzaW9ucyBkdWUg
dG8gYWRkaW5nIEpTRXZlbnRMaXN0ZW5lcjo6bV93cmFwcGVyIG51bGwgY2hlY2tzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTgzLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeGVkIEpTRXZlbnRM
aXN0ZW5lcjo6b3BlcmF0b3I9PSgpIHRvIHdvcmsgd2l0aGluIHRoZSBjb250cmFjdCB0aGF0Cisg
ICAgICAgIHdoZW4gbV93cmFwcGVyIGlzIDAsIG1fanNGdW5jdGlvbiBpcyBhbHNvIGV4cGVjdGVk
IHRvIGJlIDAuIEFsc28gZml4ZWQKKyAgICAgICAgc29tZSB0eXBvcyBpbiBjb21tZW50cy4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlz
dGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjp2aXNpdEpTRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRXZlbnRMaXN0ZW5lcjo6anNGdW5jdGlvbik6CisKIDIwMTItMTEtMTQgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNb3ZlIGVtcHR5IGxvYWRpbmcg
dG8gRG9jdW1lbnRMb2FkZXIsIHNpbXBsaWZ5IEZyYW1lTG9hZGVyOjppbml0KCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNp
b24gMTM0NTQyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBKU09iamVjdCogSlNFdmVudExp
c3RlbmVyOjppbml0aWFsaXplSlNGCiAKIHZvaWQgSlNFdmVudExpc3RlbmVyOjp2aXNpdEpTRnVu
Y3Rpb24oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgLy8gSWYgbV93cmFwcGVyIGlzIDAs
IHRoZW4ganNGdW5jdGlvbiBpcyB6b21iaWVkLCBhbmQgc2hvdWxkIG5ldmVyIGJlIGFjY2Vzc2Vk
LgorICAgIC8vIElmIG1fd3JhcHBlciBpcyAwLCB0aGVuIG1fanNGdW5jdGlvbiBpcyB6b21iaWVk
LCBhbmQgc2hvdWxkIG5ldmVyIGJlIGFjY2Vzc2VkLgogICAgIGlmICghbV93cmFwcGVyKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTE2MywxMiArMTYzLDE0IEBAIGJvb2wgSlNFdmVudExpc3RlbmVy
Ojp2aXJ0dWFsaXNBdHRyaWJ1dGUKIAogYm9vbCBKU0V2ZW50TGlzdGVuZXI6Om9wZXJhdG9yPT0o
Y29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCiB7Ci0gICAgLy8gSWYgbV93cmFwcGVyIGlz
IDAsIHRoZW4ganNGdW5jdGlvbiBpcyB6b21iaWVkLCBhbmQgc2hvdWxkIG5ldmVyIGJlIGFjY2Vz
c2VkLgotICAgIGlmICghbV93cmFwcGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoY29uc3QgSlNFdmVudExpc3RlbmVyKiBqc0V2ZW50TGlzdGVuZXIgPSBKU0V2ZW50TGlzdGVu
ZXI6OmNhc3QoJmxpc3RlbmVyKSkKLSAgICAgICAgcmV0dXJuIG1fanNGdW5jdGlvbiA9PSBqc0V2
ZW50TGlzdGVuZXItPm1fanNGdW5jdGlvbiAmJiBtX2lzQXR0cmlidXRlID09IGpzRXZlbnRMaXN0
ZW5lci0+bV9pc0F0dHJpYnV0ZTsKKyAgICBpZiAoY29uc3QgSlNFdmVudExpc3RlbmVyKiBqc0V2
ZW50TGlzdGVuZXIgPSBKU0V2ZW50TGlzdGVuZXI6OmNhc3QoJmxpc3RlbmVyKSkgeworICAgICAg
ICAvLyBJZiBtX3dyYXBwZXIgaXMgMCwgdGhlbiBtX2pzRnVuY3Rpb24gaXMgem9tYmllZCwgYW5k
IHNob3VsZCBuZXZlciBiZQorICAgICAgICAvLyBhY2Nlc3NlZC4gbV9qc0Z1bmN0aW9uIHNob3Vs
ZCBlZmZlY3RpdmVseSBiZSAwIGluIHRoYXQgY2FzZS4KKyAgICAgICAgSlNDOjpKU09iamVjdCog
anNGdW5jdGlvbiA9IG1fd3JhcHBlciA/IG1fanNGdW5jdGlvbi5nZXQoKSA6IDA7CisgICAgICAg
IEpTQzo6SlNPYmplY3QqIG90aGVySlNGdW5jdGlvbiA9IGpzRXZlbnRMaXN0ZW5lci0+bV93cmFw
cGVyID8KKyAgICAgICAgICAgIGpzRXZlbnRMaXN0ZW5lci0+bV9qc0Z1bmN0aW9uLmdldCgpIDog
MDsKKyAgICAgICAgcmV0dXJuIGpzRnVuY3Rpb24gPT0gb3RoZXJKU0Z1bmN0aW9uICYmIG1faXNB
dHRyaWJ1dGUgPT0ganNFdmVudExpc3RlbmVyLT5tX2lzQXR0cmlidXRlOworICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5oCShyZXZpc2lvbiAxMzQ1NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHdvcmxkIGFuZCBjYW4gaGF2ZSB6b21i
aWUgbV9qc0Z1bmN0aW9ucy4KICAgICAgICAgQVNTRVJUKCFtX2lzb2xhdGVkV29ybGQtPmlzTm9y
bWFsKCkgfHwgbV93cmFwcGVyIHx8ICFtX2pzRnVuY3Rpb24pOwogCi0gICAgICAgIC8vIElmIG1f
d3JhcHBlciBpcyAwLCB0aGVuIGpzRnVuY3Rpb24gaXMgem9tYmllZCwgYW5kIHNob3VsZCBuZXZl
ciBiZSBhY2Nlc3NlZC4KKyAgICAgICAgLy8gSWYgbV93cmFwcGVyIGlzIDAsIHRoZW4gbV9qc0Z1
bmN0aW9uIGlzIHpvbWJpZWQsIGFuZCBzaG91bGQgbmV2ZXIgYmUgYWNjZXNzZWQuCiAgICAgICAg
IGlmICghbV93cmFwcGVyKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAK
</data>
<flag name="review"
          id="189229"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>