<?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>53271</bug_id>
          
          <creation_ts>2011-01-27 17:15:27 -0800</creation_ts>
          <short_desc>Potentially Unsafe HashSet of RuntimeObject* in RootObject definition</short_desc>
          <delta_ts>2012-03-08 16:59:37 -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>WebCore JavaScript</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>
          <dependson>53287</dependson>
    
    <dependson>53418</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>abarth</cc>
    
    <cc>alex</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>kevin</cc>
    
    <cc>ossy</cc>
    
    <cc>rhodes.unci</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>341149</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-01-27 17:15:27 -0800</bug_when>
    <thetext>As part of investigating another defect, I came across the definition of
    HashSet&lt;RuntimeObject*&gt; m_runtimeObjects;
in RootOBject definition.

Since RuntimeObject&apos;s are GC&apos;ed, there is the possibility that a RuntimeObject could be GC&apos;ed but not removed from this HashSet.

Although I haven&apos;t determined a case where this is actually happening, it makes sense to make a preventative fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341208</commentid>
    <comment_count>1</comment_count>
      <attachid>80391</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-01-27 18:05:47 -0800</bug_when>
    <thetext>Created attachment 80391
Patch to use WeakGCMap instead of HashSet in RootObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341219</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-01-27 18:18:26 -0800</bug_when>
    <thetext>Committed r76893: &lt;http://trac.webkit.org/changeset/76893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341286</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 20:27:06 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76893 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341350</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-28 00:58:40 -0800</bug_when>
    <thetext>It made 460 tests crash on Qt debug bot: http://webkit.sed.hu/buildbot/results/x86-32%20Linux%20Qt%20Debug/r76893%20%2812399%29/results.html

ASSERTION FAILED: m_runtimeObjects.get(object)
(../../../Source/WebCore/bridge/runtime_root.cpp:189 void JSC::Bindings::RootObject::removeRuntimeObject(JSC::Bindings::RuntimeObject*))
Segmentation fault</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341351</commentid>
    <comment_count>5</comment_count>
      <attachid>80391</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-28 00:59:06 -0800</bug_when>
    <thetext>Comment on attachment 80391
Patch to use WeakGCMap instead of HashSet in RootObject

remove r+ from landed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341359</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-28 01:11:56 -0800</bug_when>
    <thetext>It was rolled out: http://trac.webkit.org/changeset/76925</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341496</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-28 10:11:08 -0800</bug_when>
    <thetext>+ ASSERT(m_runtimeObjects.get(object)); 

I think this needs to be &quot;ASSERT(m_runtimeObjects.uncheckedGet(object))&quot;. By the time removeRuntimeObject is called, object is unmarked, so get will return 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341615</commentid>
    <comment_count>8</comment_count>
      <attachid>80478</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-01-28 12:10:51 -0800</bug_when>
    <thetext>Created attachment 80478
Patch that addresses the test failures

Made the change suggested by Geoff and successfully ran all tests in debug mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341619</commentid>
    <comment_count>9</comment_count>
      <attachid>80478</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-28 12:15:32 -0800</bug_when>
    <thetext>Comment on attachment 80478
Patch that addresses the test failures

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341631</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-01-28 12:21:33 -0800</bug_when>
    <thetext>Committed r76969: &lt;http://trac.webkit.org/changeset/76969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342524</commentid>
    <comment_count>11</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-31 04:12:54 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Committed r76969: &lt;http://trac.webkit.org/changeset/76969&gt;

Apparently this could be still causing issues at least in GTK and Leopard Intel Debug, first crash in the compilation after that commit:

http://build.webkit.org/results/Leopard%20Intel%20Debug%20(Tests)/r76969%20(26725)/results.html

In Gtk+ we have the same assertions but they are flaky:

http://build.webkit.org/results/GTK%20Linux%2064-bit%20Debug/r77114%20(18774)/fast/frames/sandboxed-iframe-scripting-stderr.txt

Unfourtunately I can not reproduce it locally in gtk+. I&apos;m going to rollout until you have time to check it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342826</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-01-31 14:42:42 -0800</bug_when>
    <thetext>*** Bug 53376 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344251</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-02 14:24:07 -0800</bug_when>
    <thetext>I&apos;m seeing crashes relating to this on the Snow Leopard Debug bot:
http://build.webkit.org/results/SnowLeopard%20Intel%20Leaks/r77400%20(14522)/fast/events/tabindex-focus-blur-all-stderr.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344253</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-02 14:24:23 -0800</bug_when>
    <thetext>SUCCESS: Build 14472 (r77164) was the first to show failures: set([u&apos;fast/events/tabindex-focus-blur-all.html&apos;])</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574393</commentid>
    <comment_count>15</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-08 16:59:37 -0800</bug_when>
    <thetext>*** Bug 53411 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80391</attachid>
            <date>2011-01-27 18:05:47 -0800</date>
            <delta_ts>2011-01-28 00:59:06 -0800</delta_ts>
            <desc>Patch to use WeakGCMap instead of HashSet in RootObject</desc>
            <filename>53271.patch</filename>
            <type>text/plain</type>
            <size>4740</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzY4NzEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDEtMjcgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUG90ZW50aWFsbHkgVW5zYWZlIEhhc2hTZXQgb2YgUnVudGltZU9iamVjdCogaW4gUm9vdE9i
amVjdCBkZWZpbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MzI3MQorCisgICAgICAgIEFkZGVkIG5ldyBpc1ZhbGlkKCkgbWV0aG9kcyB0byBj
aGVjayBpZiBhIGNvbnRhaW5lZCBvYmplY3QgaW4KKyAgICAgICAgYSBXZWFrR0NNYXAgaXMgdmFs
aWQgd2hlbiB1c2luZyBhbiB1bmNoZWNrZWQgaXRlcmF0b3IuCisKKyAgICAgICAgKiBydW50aW1l
L1dlYWtHQ01hcC5oOgorICAgICAgICAoSlNDOjpXZWFrR0NNYXA6OmlzVmFsaWQpOgorCiAyMDEx
LTAxLTI2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrR0NNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWFrR0NNYXAuaAkocmV2aXNpb24gNzY4NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrR0NNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksOSBAQCBwdWJs
aWM6CiAgICAgY29uc3RfaXRlcmF0b3IgdW5jaGVja2VkQmVnaW4oKSBjb25zdCB7IHJldHVybiBt
X21hcC5iZWdpbigpOyB9CiAgICAgY29uc3RfaXRlcmF0b3IgdW5jaGVja2VkRW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXAuZW5kKCk7IH0KIAorICAgIGJvb2wgaXNWYWxpZChpdGVyYXRvciBpdCkg
Y29uc3QgeyByZXR1cm4gSGVhcDo6aXNDZWxsTWFya2VkKGl0LT5zZWNvbmQpOyB9CisgICAgYm9v
bCBpc1ZhbGlkKGNvbnN0X2l0ZXJhdG9yIGl0KSBjb25zdCB7IHJldHVybiBIZWFwOjppc0NlbGxN
YXJrZWQoaXQtPnNlY29uZCk7IH0KKwogcHJpdmF0ZToKICAgICBIYXNoTWFwPEtleVR5cGUsIE1h
cHBlZFR5cGU+IG1fbWFwOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2ODcxKQorKysg
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMDEtMjcgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG90ZW50aWFsbHkgVW5z
YWZlIEhhc2hTZXQgb2YgUnVudGltZU9iamVjdCogaW4gUm9vdE9iamVjdCBkZWZpbml0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzI3MQorCisg
ICAgICAgIFByZWNhdXRpb25hcnkgY2hhbmdlLgorICAgICAgICBDaGFuZ2VkIFJvb3RPYmplY3Qg
dG8gdXNlIFdlYWtHQ01hcCBpbnN0ZWFkIG9mIEhhc2hTZXQuCisgICAgICAgIEZvdW5kIHdpbGwg
bG9va2luZyBmb3IgYW5vdGhlciBpc3N1ZSwgYnV0IGNhbid0IHByb2R1Y2UgYSB0ZXN0IGNhc2UK
KyAgICAgICAgdGhhdCBpcyBwcm9ibGVtYXRpYy4gIFRIZXJlZm9yZSB0aGVyZSBhcmVuJ3QgYW55
IG5ldyB0ZXN0cy4KKworICAgICAgICAqIGJyaWRnZS9ydW50aW1lX3Jvb3QuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdDo6aW52YWxpZGF0ZSk6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpSb290T2JqZWN0OjphZGRSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OlJvb3RPYmplY3Q6OnJlbW92ZVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX3Jvb3QuaDoKKwogMjAxMS0wMS0yNyAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9y
YmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCShyZXZpc2lvbiA3Njg2
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDEsMTMgKzEwMSwxNSBAQCB2b2lkIFJvb3RPYmplY3Q6OmludmFsaWRhdGUoKQog
ICAgICAgICByZXR1cm47CiAKICAgICB7Ci0gICAgICAgIEhhc2hTZXQ8UnVudGltZU9iamVjdCo+
OjppdGVyYXRvciBlbmQgPSBtX3J1bnRpbWVPYmplY3RzLmVuZCgpOwotICAgICAgICBmb3IgKEhh
c2hTZXQ8UnVudGltZU9iamVjdCo+OjppdGVyYXRvciBpdCA9IG1fcnVudGltZU9iamVjdHMuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgKCppdCktPmludmFsaWRhdGUoKTsK
LSAgICAgICAgCisgICAgICAgIFdlYWtHQ01hcDxSdW50aW1lT2JqZWN0KiwgUnVudGltZU9iamVj
dCo+OjppdGVyYXRvciBlbmQgPSBtX3J1bnRpbWVPYmplY3RzLnVuY2hlY2tlZEVuZCgpOworICAg
ICAgICBmb3IgKFdlYWtHQ01hcDxSdW50aW1lT2JqZWN0KiwgUnVudGltZU9iamVjdCo+OjppdGVy
YXRvciBpdCA9IG1fcnVudGltZU9iamVjdHMudW5jaGVja2VkQmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgICAgICBpZiAobV9ydW50aW1lT2JqZWN0cy5pc1ZhbGlkKGl0KSkKKyAg
ICAgICAgICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIH0KKwogICAg
ICAgICBtX3J1bnRpbWVPYmplY3RzLmNsZWFyKCk7CiAgICAgfQotICAgIAorCiAgICAgbV9pc1Zh
bGlkID0gZmFsc2U7CiAKICAgICBtX25hdGl2ZUhhbmRsZSA9IDA7CkBAIC0xNzYsMTcgKzE3OCwx
NyBAQCB2b2lkIFJvb3RPYmplY3Q6OnVwZGF0ZUdsb2JhbE9iamVjdChKU0dsCiB2b2lkIFJvb3RP
YmplY3Q6OmFkZFJ1bnRpbWVPYmplY3QoUnVudGltZU9iamVjdCogb2JqZWN0KQogewogICAgIEFT
U0VSVChtX2lzVmFsaWQpOwotICAgIEFTU0VSVCghbV9ydW50aW1lT2JqZWN0cy5jb250YWlucyhv
YmplY3QpKTsKLSAgICAKLSAgICBtX3J1bnRpbWVPYmplY3RzLmFkZChvYmplY3QpOwotfSAgICAg
ICAgCi0gICAgCisgICAgQVNTRVJUKCFtX3J1bnRpbWVPYmplY3RzLmdldChvYmplY3QpKTsKKwor
ICAgIG1fcnVudGltZU9iamVjdHMuc2V0KG9iamVjdCwgb2JqZWN0KTsKK30KKwogdm9pZCBSb290
T2JqZWN0OjpyZW1vdmVSdW50aW1lT2JqZWN0KFJ1bnRpbWVPYmplY3QqIG9iamVjdCkKIHsKICAg
ICBBU1NFUlQobV9pc1ZhbGlkKTsKLSAgICBBU1NFUlQobV9ydW50aW1lT2JqZWN0cy5jb250YWlu
cyhvYmplY3QpKTsKLSAgICAKLSAgICBtX3J1bnRpbWVPYmplY3RzLnJlbW92ZShvYmplY3QpOwor
ICAgIEFTU0VSVChtX3J1bnRpbWVPYmplY3RzLmdldChvYmplY3QpKTsKKworICAgIG1fcnVudGlt
ZU9iamVjdHMudGFrZShvYmplY3QpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QmluZGlu
Z3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmgJKHJldmlzaW9uIDc2ODY5
KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw4ICszMSw4IEBACiAjZW5kaWYKICNpbmNsdWRlIDxydW50aW1lL1Byb3RlY3QuaD4K
IAorI2luY2x1ZGUgPHJ1bnRpbWUvV2Vha0dDTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBQcm90ZWN0ZWRQdHI8SlNHbG9iYWxP
YmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogCiAgICAgUHJvdGVjdENvdW50U2V0IG1fcHJvdGVjdENv
dW50U2V0OwotICAgIEhhc2hTZXQ8UnVudGltZU9iamVjdCo+IG1fcnVudGltZU9iamVjdHM7ICAg
IAorICAgIFdlYWtHQ01hcDxSdW50aW1lT2JqZWN0KiwgUnVudGltZU9iamVjdCo+IG1fcnVudGlt
ZU9iamVjdHM7IC8vIFJlYWxseSBuZWVkIGEgV2Vha0dDU2V0LCBidXQgdGhpcyB3aWxsIGRvLgog
CiAgICAgSGFzaFNldDxJbnZhbGlkYXRpb25DYWxsYmFjayo+IG1faW52YWxpZGF0aW9uQ2FsbGJh
Y2tzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80478</attachid>
            <date>2011-01-28 12:10:51 -0800</date>
            <delta_ts>2011-01-28 12:15:32 -0800</delta_ts>
            <desc>Patch that addresses the test failures</desc>
            <filename>53271-1.patch</filename>
            <type>text/plain</type>
            <size>5263</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzY5NTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTEtMDEtMjggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUG90ZW50aWFsbHkgVW5zYWZlIEhhc2hTZXQgb2YgUnVudGltZU9iamVjdCogaW4gUm9vdE9i
amVjdCBkZWZpbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MzI3MQorCisgICAgICAgIFJlYXBwbHlpbmcgdGhpcyB0aGlzIGNoYW5nZS4gIE5v
IGNoYW5nZSBmcm9tIHByaW9yIHBhdGNoIGluCisgICAgICAgIEphdmFTY3JpcHRDb3JlLgorCisg
ICAgICAgIEFkZGVkIG5ldyBpc1ZhbGlkKCkgbWV0aG9kcyB0byBjaGVjayBpZiBhIGNvbnRhaW5l
ZCBvYmplY3QgaW4KKyAgICAgICAgYSBXZWFrR0NNYXAgaXMgdmFsaWQgd2hlbiB1c2luZyBhbiB1
bmNoZWNrZWQgaXRlcmF0b3IuCisKKyAgICAgICAgKiBydW50aW1lL1dlYWtHQ01hcC5oOgorICAg
ICAgICAoSlNDOjpXZWFrR0NNYXA6OmlzVmFsaWQpOgorCiAyMDExLTAxLTI4ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dp
YWsuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaAkocmV2
aXNpb24gNzY5NTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksOSBAQCBwdWJsaWM6CiAgICAgY29uc3RfaXRl
cmF0b3IgdW5jaGVja2VkQmVnaW4oKSBjb25zdCB7IHJldHVybiBtX21hcC5iZWdpbigpOyB9CiAg
ICAgY29uc3RfaXRlcmF0b3IgdW5jaGVja2VkRW5kKCkgY29uc3QgeyByZXR1cm4gbV9tYXAuZW5k
KCk7IH0KIAorICAgIGJvb2wgaXNWYWxpZChpdGVyYXRvciBpdCkgY29uc3QgeyByZXR1cm4gSGVh
cDo6aXNDZWxsTWFya2VkKGl0LT5zZWNvbmQpOyB9CisgICAgYm9vbCBpc1ZhbGlkKGNvbnN0X2l0
ZXJhdG9yIGl0KSBjb25zdCB7IHJldHVybiBIZWFwOjppc0NlbGxNYXJrZWQoaXQtPnNlY29uZCk7
IH0KKwogcHJpdmF0ZToKICAgICBIYXNoTWFwPEtleVR5cGUsIE1hcHBlZFR5cGU+IG1fbWFwOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2OTU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDEtMjggIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUG90ZW50aWFsbHkgVW5zYWZlIEhhc2hTZXQgb2YgUnVu
dGltZU9iamVjdCogaW4gUm9vdE9iamVjdCBkZWZpbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzI3MQorCisgICAgICAgIFJlYXBwbHlpbmcg
dGhpcyBwYXRjaCB3aXRoIHRoZSBjaGFuZ2UgdGhhdCB0aGUgc2Vjb25kIEFTU0VSVCBpbiAKKyAg
ICAgICAgUm9vdE9iamVjdDo6cmVtb3ZlUnVudGltZU9iamVjdCB3YXMgY2hhbmdlZCB0byB1c2UK
KyAgICAgICAgLnVuY2hlY2tlZEdldCgpIGluc3RlYWQgb2YgdGhlIGZhaWxpbmcgLmdldCgpLiAg
VGhlIG9iamVjdCBpbiBxdWVzdGlvbgorICAgICAgICBjb3VsZCBiZSBpbiB0aGUgcHJvY2VzcyBv
ZiBiZWluZyBHQydlZC4gIFRoZSBnZXQoKSBjYWxsIHdpbGwgbm90IHJldHVybgorICAgICAgICBz
dWNoIGFuIG9iamVjdCB3aGlsZSB0aGUgdW5jaGVja2VkR2V0KCkgY2FsbCB3aWxsIHJldHVybiB0
aGUgKHVuc2FmZSkgCisgICAgICAgIG9iamVjdC4gIFRoaXMgaXMgdGhlIGJlaGF2aW9yIHdlIHdh
bnQuCisKKyAgICAgICAgUHJlY2F1dGlvbmFyeSBjaGFuZ2UuCisgICAgICAgIENoYW5nZWQgUm9v
dE9iamVjdCB0byB1c2UgV2Vha0dDTWFwIGluc3RlYWQgb2YgSGFzaFNldC4KKyAgICAgICAgRm91
bmQgd2lsbCBsb29raW5nIGZvciBhbm90aGVyIGlzc3VlLCBidXQgY2FuJ3QgcHJvZHVjZSBhIHRl
c3QgY2FzZQorICAgICAgICB0aGF0IGlzIHByb2JsZW1hdGljLiAgVEhlcmVmb3JlIHRoZXJlIGFy
ZW4ndCBhbnkgbmV3IHRlc3RzLgorCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfcm9vdC5jcHA6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q6OmFkZFJ1bnRpbWVPYmplY3QpOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdDo6cmVtb3ZlUnVudGltZU9iamVjdCk6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfcm9vdC5oOgorCiAyMDExLTAxLTI4ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcAkocmV2aXNpb24gNzY5
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTAxLDEzICsxMDEsMTUgQEAgdm9pZCBSb290T2JqZWN0OjppbnZhbGlkYXRlKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgewotICAgICAgICBIYXNoU2V0PFJ1bnRpbWVPYmplY3Qq
Pjo6aXRlcmF0b3IgZW5kID0gbV9ydW50aW1lT2JqZWN0cy5lbmQoKTsKLSAgICAgICAgZm9yIChI
YXNoU2V0PFJ1bnRpbWVPYmplY3QqPjo6aXRlcmF0b3IgaXQgPSBtX3J1bnRpbWVPYmplY3RzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgICAgICgqaXQpLT5pbnZhbGlkYXRlKCk7
Ci0gICAgICAgIAorICAgICAgICBXZWFrR0NNYXA8UnVudGltZU9iamVjdCosIFJ1bnRpbWVPYmpl
Y3QqPjo6aXRlcmF0b3IgZW5kID0gbV9ydW50aW1lT2JqZWN0cy51bmNoZWNrZWRFbmQoKTsKKyAg
ICAgICAgZm9yIChXZWFrR0NNYXA8UnVudGltZU9iamVjdCosIFJ1bnRpbWVPYmplY3QqPjo6aXRl
cmF0b3IgaXQgPSBtX3J1bnRpbWVPYmplY3RzLnVuY2hlY2tlZEJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgeworICAgICAgICAgICAgaWYgKG1fcnVudGltZU9iamVjdHMuaXNWYWxpZChpdCkpCisg
ICAgICAgICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZSgpOworICAgICAgICB9CisKICAg
ICAgICAgbV9ydW50aW1lT2JqZWN0cy5jbGVhcigpOwogICAgIH0KLSAgICAKKwogICAgIG1faXNW
YWxpZCA9IGZhbHNlOwogCiAgICAgbV9uYXRpdmVIYW5kbGUgPSAwOwpAQCAtMTc2LDE3ICsxNzgs
MTcgQEAgdm9pZCBSb290T2JqZWN0Ojp1cGRhdGVHbG9iYWxPYmplY3QoSlNHbAogdm9pZCBSb290
T2JqZWN0OjphZGRSdW50aW1lT2JqZWN0KFJ1bnRpbWVPYmplY3QqIG9iamVjdCkKIHsKICAgICBB
U1NFUlQobV9pc1ZhbGlkKTsKLSAgICBBU1NFUlQoIW1fcnVudGltZU9iamVjdHMuY29udGFpbnMo
b2JqZWN0KSk7Ci0gICAgCi0gICAgbV9ydW50aW1lT2JqZWN0cy5hZGQob2JqZWN0KTsKLX0gICAg
ICAgIAotICAgIAorICAgIEFTU0VSVCghbV9ydW50aW1lT2JqZWN0cy5nZXQob2JqZWN0KSk7CisK
KyAgICBtX3J1bnRpbWVPYmplY3RzLnNldChvYmplY3QsIG9iamVjdCk7Cit9CisKIHZvaWQgUm9v
dE9iamVjdDo6cmVtb3ZlUnVudGltZU9iamVjdChSdW50aW1lT2JqZWN0KiBvYmplY3QpCiB7CiAg
ICAgQVNTRVJUKG1faXNWYWxpZCk7Ci0gICAgQVNTRVJUKG1fcnVudGltZU9iamVjdHMuY29udGFp
bnMob2JqZWN0KSk7Ci0gICAgCi0gICAgbV9ydW50aW1lT2JqZWN0cy5yZW1vdmUob2JqZWN0KTsK
KyAgICBBU1NFUlQobV9ydW50aW1lT2JqZWN0cy51bmNoZWNrZWRHZXQob2JqZWN0KSk7CisKKyAg
ICBtX3J1bnRpbWVPYmplY3RzLnRha2Uob2JqZWN0KTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkJpbmRpbmdzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5oCShyZXZp
c2lvbiA3Njk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsOCArMzEsOCBAQAogI2VuZGlmCiAjaW5jbHVkZSA8cnVudGltZS9Q
cm90ZWN0Lmg+CiAKKyNpbmNsdWRlIDxydW50aW1lL1dlYWtHQ01hcC5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgUHJvdGVjdGVkUHRy
PEpTR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKIAogICAgIFByb3RlY3RDb3VudFNldCBt
X3Byb3RlY3RDb3VudFNldDsKLSAgICBIYXNoU2V0PFJ1bnRpbWVPYmplY3QqPiBtX3J1bnRpbWVP
YmplY3RzOyAgICAKKyAgICBXZWFrR0NNYXA8UnVudGltZU9iamVjdCosIFJ1bnRpbWVPYmplY3Qq
PiBtX3J1bnRpbWVPYmplY3RzOyAvLyBSZWFsbHkgbmVlZCBhIFdlYWtHQ1NldCwgYnV0IHRoaXMg
d2lsbCBkby4KIAogICAgIEhhc2hTZXQ8SW52YWxpZGF0aW9uQ2FsbGJhY2sqPiBtX2ludmFsaWRh
dGlvbkNhbGxiYWNrczsKIH07Cg==
</data>
<flag name="review"
          id="71965"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>