<?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>169290</bug_id>
          
          <creation_ts>2017-03-07 10:44:35 -0800</creation_ts>
          <short_desc>WebAssembly: Make OOB for fast memory do an extra safety check by ensuring the faulting address is in the range we allocated for fast memory</short_desc>
          <delta_ts>2017-03-08 14:51:00 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Saam Barati">saam</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284403</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-07 10:44:35 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284874</commentid>
    <comment_count>1</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-03-08 09:32:51 -0800</bug_when>
    <thetext>I can take this since wrote the code anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284923</commentid>
    <comment_count>2</comment_count>
      <attachid>303824</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-03-08 11:47:35 -0800</bug_when>
    <thetext>Created attachment 303824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285015</commentid>
    <comment_count>3</comment_count>
      <attachid>303824</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-08 14:19:56 -0800</bug_when>
    <thetext>Comment on attachment 303824
Patch

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

Comment below, otherwise, LGTM.
r- just because of my comment.

&gt; Source/JavaScriptCore/wasm/WasmFaultSignalHandler.cpp:104
&gt; +        {
&gt; +            void* faultingAddress = sigInfo-&gt;si_addr;
&gt; +            dataLogLnIf(verbose, &quot;checking faulting address: &quot;, RawPointer(faultingAddress), &quot; is in an active fast memory&quot;);
&gt; +            LockHolder locker(memoryLock);
&gt; +            auto&amp; activeFastMemories = viewActiveFastMemories(locker);
&gt; +            for (void* activeMemory : activeFastMemories) {
&gt; +                dataLogLnIf(verbose, &quot;checking fast memory at: &quot;, RawPointer(activeMemory));
&gt; +                if (activeMemory &lt;= faultingAddress &amp;&amp; faultingAddress &lt; static_cast&lt;char*&gt;(activeMemory) + fastMemoryMappedBytes) {
&gt; +                    faultedInActiveFastMemory = true;

You should first check that we&apos;re in JIT code otherwise we could&apos;ve crashed while holding the lock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285016</commentid>
    <comment_count>4</comment_count>
      <attachid>303824</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-08 14:21:34 -0800</bug_when>
    <thetext>Comment on attachment 303824
Patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmFaultSignalHandler.cpp:104
&gt;&gt; +                    faultedInActiveFastMemory = true;
&gt; 
&gt; You should first check that we&apos;re in JIT code otherwise we could&apos;ve crashed while holding the lock.

Ignore me, I&apos;m wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285018</commentid>
    <comment_count>5</comment_count>
      <attachid>303824</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-03-08 14:23:11 -0800</bug_when>
    <thetext>Comment on attachment 303824
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285041</commentid>
    <comment_count>6</comment_count>
      <attachid>303824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-08 14:50:54 -0800</bug_when>
    <thetext>Comment on attachment 303824
Patch

Clearing flags on attachment: 303824

Committed r213599: &lt;http://trac.webkit.org/changeset/213599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285042</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-08 14:51:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303824</attachid>
            <date>2017-03-08 11:47:35 -0800</date>
            <delta_ts>2017-03-08 14:50:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169290-20170308114734.patch</filename>
            <type>text/plain</type>
            <size>10097</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
Mzc0YmMyYmEzYmI3MGNiZjEzYzNmM2EwZDRjZjgzZGYyODkxNmY1Li40YTM4ZTk1M2YxYjE5ZjY1
NjUwYjdjNGZhNWI5MjhmZjhiMWUwMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNy0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseTogTWFrZSBPT0IgZm9yIGZhc3QgbWVtb3J5IGRv
IGFuIGV4dHJhIHNhZmV0eSBjaGVjayBieSBlbnN1cmluZyB0aGUgZmF1bHRpbmcgYWRkcmVzcyBp
cyBpbiB0aGUgcmFuZ2Ugd2UgYWxsb2NhdGVkIGZvciBmYXN0IG1lbW9yeQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MjkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGFuIGV4
dHJhIHNhbml0eSBjaGVjayBieSBlbnN1cmluZyB0aGF0IHRoZSB0aGUgbWVtb3J5IGFkZHJlc3Mg
d2UgZmF1bHRpbmcgdHJ5aW5nIHRvIGxvYWQgaXMgaW4gcmFuZ2UKKyAgICAgICAgb2Ygc29tZSB3
YXNtIGZhc3QgbWVtb3J5LgorCisgICAgICAgICogd2FzbS9XYXNtRmF1bHRTaWduYWxIYW5kbGVy
LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6dHJhcEhhbmRsZXIpOgorICAgICAgICAoSlNDOjpX
YXNtOjplbmFibGVGYXN0TWVtb3J5KToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuY3BwOgor
ICAgICAgICAoSlNDOjpXYXNtOjphY3RpdmVGYXN0TWVtb3JpZXMpOgorICAgICAgICAoSlNDOjpX
YXNtOjp2aWV3QWN0aXZlRmFzdE1lbW9yaWVzKToKKyAgICAgICAgKEpTQzo6V2FzbTo6dHJ5R2V0
RmFzdE1lbW9yeSk6CisgICAgICAgIChKU0M6Oldhc206OnJlbGVhc2VGYXN0TWVtb3J5KToKKyAg
ICAgICAgKiB3YXNtL1dhc21NZW1vcnkuaDoKKwogMjAxNy0wMy0wNiAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogSW1wbGVtZW50IHRoZSBX
ZWJBc3NlbWJseS5pbnN0YW50aWF0ZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21GYXVsdFNpZ25hbEhhbmRsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKaW5kZXggMGYxY2JmN2I4ZDU2NmRi
ZmJlZjdiOGU5ZWE4ZDAxNDE4MTQ0NzBmZS4uYWViYjE3MTVhYjE0ZjY5ZjZiZjRhMmMxYjJhY2M2
N2Y5ZGUxOTM5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZh
dWx0U2lnbmFsSGFuZGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUZhdWx0U2lnbmFsSGFuZGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJFeGVj
dXRhYmxlQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlICJXYXNtRXhjZXB0
aW9uVHlwZS5oIgorI2luY2x1ZGUgIldhc21NZW1vcnkuaCIKIAogI2luY2x1ZGUgPHNpZ25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC03OSw3ICs4MCw3IEBAIHN0YXRpYyBMYXp5TmV2
ZXJEZXN0cm95ZWQ8SGFzaFNldDxzdGQ6OnR1cGxlPFZNKiwgdm9pZCosIHZvaWQqPj4+IGNvZGVM
b2NhdGlvbnM7CiAKICNlbmRpZgogCi1zdGF0aWMgdm9pZCB0cmFwSGFuZGxlcihpbnQgc2lnbmFs
LCBzaWdpbmZvX3QqLCB2b2lkKiB1Y29udGV4dCkKK3N0YXRpYyB2b2lkIHRyYXBIYW5kbGVyKGlu
dCBzaWduYWwsIHNpZ2luZm9fdCogc2lnSW5mbywgdm9pZCogdWNvbnRleHQpCiB7CiAgICAgbWNv
bnRleHRfdCYgY29udGV4dCA9IHN0YXRpY19jYXN0PHVjb250ZXh0X3QqPih1Y29udGV4dCktPnVj
X21jb250ZXh0OwogICAgIHZvaWQqIGZhdWx0aW5nSW5zdHJ1Y3Rpb24gPSByZWludGVycHJldF9j
YXN0PHZvaWQqPihJbnN0cnVjdGlvblBvaW50ZXJHUFIpOwpAQCAtOTEsMjMgKzkyLDQwIEBAIHN0
YXRpYyB2b2lkIHRyYXBIYW5kbGVyKGludCBzaWduYWwsIHNpZ2luZm9fdCosIHZvaWQqIHVjb250
ZXh0KQogICAgIGlmIChyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGFydE9mRml4ZWRFeGVjdXRh
YmxlTWVtb3J5UG9vbCkgPD0gZmF1bHRpbmdJbnN0cnVjdGlvbgogICAgICAgICAmJiBmYXVsdGlu
Z0luc3RydWN0aW9uIDwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZGaXhlZEV4ZWN1dGFi
bGVNZW1vcnlQb29sKSkgewogCi0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGNvZGVMb2NhdGlv
bnNMb2NrKTsKLSAgICAgICAgZm9yIChhdXRvIHJhbmdlIDogY29kZUxvY2F0aW9ucy5nZXQoKSkg
ewotICAgICAgICAgICAgVk0qIHZtOwotICAgICAgICAgICAgdm9pZCogc3RhcnQ7Ci0gICAgICAg
ICAgICB2b2lkKiBlbmQ7Ci0gICAgICAgICAgICBzdGQ6OnRpZSh2bSwgc3RhcnQsIGVuZCkgPSBy
YW5nZTsKLSAgICAgICAgICAgIGRhdGFMb2dMbklmKHZlcmJvc2UsICJmdW5jdGlvbiBzdGFydDog
IiwgUmF3UG9pbnRlcihzdGFydCksICIgZW5kOiAiLCBSYXdQb2ludGVyKGVuZCkpOwotICAgICAg
ICAgICAgaWYgKHN0YXJ0IDw9IGZhdWx0aW5nSW5zdHJ1Y3Rpb24gJiYgZmF1bHRpbmdJbnN0cnVj
dGlvbiA8IGVuZCkgewotICAgICAgICAgICAgICAgIGRhdGFMb2dMbklmKHZlcmJvc2UsICJmb3Vu
ZCBtYXRjaCIpOwotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBleGNlcHRp
b25TdHViID0gdm0tPmppdFN0dWJzLT5leGlzdGluZ0NUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9t
V2FzbVRodW5rR2VuZXJhdG9yKTsKLSAgICAgICAgICAgICAgICAvLyBJZiBmb3Igd2hhdGV2ZXIg
cmVhc29uIHdlIGRvbid0IGhhdmUgYSBzdHViIHRoZW4gd2Ugc2hvdWxkIGp1c3QgdHJlYXQgdGhp
cyBsaWtlIGEgcmVndWxhciBjcmFzaC4KLSAgICAgICAgICAgICAgICBpZiAoIWV4Y2VwdGlvblN0
dWIpCisgICAgICAgIGJvb2wgZmF1bHRlZEluQWN0aXZlRmFzdE1lbW9yeSA9IGZhbHNlOworICAg
ICAgICB7CisgICAgICAgICAgICB2b2lkKiBmYXVsdGluZ0FkZHJlc3MgPSBzaWdJbmZvLT5zaV9h
ZGRyOworICAgICAgICAgICAgZGF0YUxvZ0xuSWYodmVyYm9zZSwgImNoZWNraW5nIGZhdWx0aW5n
IGFkZHJlc3M6ICIsIFJhd1BvaW50ZXIoZmF1bHRpbmdBZGRyZXNzKSwgIiBpcyBpbiBhbiBhY3Rp
dmUgZmFzdCBtZW1vcnkiKTsKKyAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1lbW9yeUxv
Y2spOworICAgICAgICAgICAgYXV0byYgYWN0aXZlRmFzdE1lbW9yaWVzID0gdmlld0FjdGl2ZUZh
c3RNZW1vcmllcyhsb2NrZXIpOworICAgICAgICAgICAgZm9yICh2b2lkKiBhY3RpdmVNZW1vcnkg
OiBhY3RpdmVGYXN0TWVtb3JpZXMpIHsKKyAgICAgICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJi
b3NlLCAiY2hlY2tpbmcgZmFzdCBtZW1vcnkgYXQ6ICIsIFJhd1BvaW50ZXIoYWN0aXZlTWVtb3J5
KSk7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZU1lbW9yeSA8PSBmYXVsdGluZ0FkZHJlc3Mg
JiYgZmF1bHRpbmdBZGRyZXNzIDwgc3RhdGljX2Nhc3Q8Y2hhcio+KGFjdGl2ZU1lbW9yeSkgKyBm
YXN0TWVtb3J5TWFwcGVkQnl0ZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgZmF1bHRlZEluQWN0
aXZlRmFzdE1lbW9yeSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIGRhdGFMb2dMbklmKHZlcmJvc2UsICJmb3VuZCBzdHViOiAiLCBSYXdQb2ludGVy
KGV4Y2VwdGlvblN0dWIuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKLSAgICAgICAgICAg
ICAgICBGaXJzdEFyZ3VtZW50R1BSID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEV4Y2VwdGlvblR5
cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKLSAgICAgICAgICAgICAgICBJbnN0cnVjdGlv
blBvaW50ZXJHUFIgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihleGNlcHRpb25TdHViLmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmYXVs
dGVkSW5BY3RpdmVGYXN0TWVtb3J5KSB7CisgICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJib3Nl
LCAiZm91bmQgYWN0aXZlIGZhc3QgbWVtb3J5IGZvciBmYXVsdGluZyBhZGRyZXNzIik7CisgICAg
ICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihjb2RlTG9jYXRpb25zTG9jayk7CisgICAgICAgICAg
ICBmb3IgKGF1dG8gcmFuZ2UgOiBjb2RlTG9jYXRpb25zLmdldCgpKSB7CisgICAgICAgICAgICAg
ICAgVk0qIHZtOworICAgICAgICAgICAgICAgIHZvaWQqIHN0YXJ0OworICAgICAgICAgICAgICAg
IHZvaWQqIGVuZDsKKyAgICAgICAgICAgICAgICBzdGQ6OnRpZSh2bSwgc3RhcnQsIGVuZCkgPSBy
YW5nZTsKKyAgICAgICAgICAgICAgICBkYXRhTG9nTG5JZih2ZXJib3NlLCAiZnVuY3Rpb24gc3Rh
cnQ6ICIsIFJhd1BvaW50ZXIoc3RhcnQpLCAiIGVuZDogIiwgUmF3UG9pbnRlcihlbmQpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoc3RhcnQgPD0gZmF1bHRpbmdJbnN0cnVjdGlvbiAmJiBmYXVsdGlu
Z0luc3RydWN0aW9uIDwgZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dMbklmKHZl
cmJvc2UsICJmb3VuZCBtYXRjaCIpOworICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgZXhjZXB0aW9uU3R1YiA9IHZtLT5qaXRTdHVicy0+ZXhpc3RpbmdDVElTdHViKHRo
cm93RXhjZXB0aW9uRnJvbVdhc21UaHVua0dlbmVyYXRvcik7CisgICAgICAgICAgICAgICAgICAg
IC8vIElmIGZvciB3aGF0ZXZlciByZWFzb24gd2UgZG9uJ3QgaGF2ZSBhIHN0dWIgdGhlbiB3ZSBz
aG91bGQganVzdCB0cmVhdCB0aGlzIGxpa2UgYSByZWd1bGFyIGNyYXNoLgorICAgICAgICAgICAg
ICAgICAgICBpZiAoIWV4Y2VwdGlvblN0dWIpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0xuSWYodmVyYm9zZSwgImZvdW5kIHN0dWI6
ICIsIFJhd1BvaW50ZXIoZXhjZXB0aW9uU3R1Yi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkp
OworICAgICAgICAgICAgICAgICAgICBGaXJzdEFyZ3VtZW50R1BSID0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zdHJ1Y3Rpb25Qb2ludGVyR1BSID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
NjRfdD4oZXhjZXB0aW9uU3R1Yi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xNTksMTAgKzE3NywxMCBAQCB2b2lkIGVuYWJsZUZhc3RNZW1v
cnkoKQogICAgICAgICAvLyBUaHVzLCB3ZSBtdXN0IG5vdCBmYWlsIGluIHRoZSBmb2xsb3dpbmcg
YXR0ZW1wdHMuCiAgICAgICAgIGludCByZXQgPSAwOwogICAgICAgICByZXQgPSBzaWdhY3Rpb24o
U0lHQlVTLCAmYWN0aW9uLCAmb2xkU2lnQnVzSGFuZGxlcik7Ci0gICAgICAgIEFTU0VSVF9VTlVT
RUQocmV0LCAhcmV0KTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIXJldCk7CiAKICAgICAgICAg
cmV0ID0gc2lnYWN0aW9uKFNJR1NFR1YsICZhY3Rpb24sICZvbGRTaWdTZWd2SGFuZGxlcik7Ci0g
ICAgICAgIEFTU0VSVF9VTlVTRUQocmV0LCAhcmV0KTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IXJldCk7CiAKICAgICAgICAgY29kZUxvY2F0aW9ucy5jb25zdHJ1Y3QoKTsKICAgICAgICAgZmFz
dEhhbmRsZXJJbnN0YWxsZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TWVtb3J5LmNwcAppbmRleCA5MWM2NDJlOWRjNjU4OGU0YmVmYmExNDExNWNmZDQ3ZTE1Njk4NmQz
Li4zMGU5ZjMwZWMwMjU2MDk2ZTg4MjY1MDYzNWZkZWVjZGExNmI4NDc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApAQCAtNjUsMTggKzY1LDI2IEBAIE1lbW9y
eTo6TW9kZSBNZW1vcnk6Omxhc3RBbGxvY2F0ZWRNb2RlKCkKICAgICByZXR1cm4gbGFzdEFsbG9j
YXRlZE1lbW9yeU1vZGU7CiB9CiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKHVpbnQ2NF90KSA9PSBz
aXplb2Yoc2l6ZV90KSwgIldlIHJlbHkgb24gYWxsb3dpbmcgdGhlIG1heGltdW0gc2l6ZSBvZiBN
ZW1vcnkgd2UgbWFwIHRvIGJlIDJeMzMgd2hpY2ggaXMgbGFyZ2VyIHRoYW4gZml0cyBpbiBhIDMy
LWJpdCBpbnRlZ2VyIHRoYXQgd2UnZCBwYXNzIHRvIG1wcm90ZWN0IGlmIHRoaXMgZGlkbid0IGhv
bGQuIik7Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgZmFzdE1lbW9yeU1hcHBlZEJ5dGVzID0gKHN0
YXRpY19jYXN0PHNpemVfdD4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSAr
IDEpICogMjsgLy8gcG9pbnRlciBtYXggKyBvZmZzZXQgbWF4LiBUaGlzIGlzIGFsbCB3ZSBuZWVk
IHNpbmNlIGEgbG9hZCBzdHJhZGRsaW5nIHJlYWRhYmxlIG1lbW9yeSB3aWxsIHRyYXAuCiBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbWF4RmFzdE1lbW9yaWVzID0gNDsKIHN0YXRpYyB1bnNpZ25lZCBh
bGxvY2F0ZWRGYXN0TWVtb3JpZXMgeyAwIH07Ci1zdGF0aWMgU3RhdGljTG9jayBtZW1vcnlMb2Nr
OworU3RhdGljTG9jayBtZW1vcnlMb2NrOwogaW5saW5lIERlcXVlPHZvaWQqLCBtYXhGYXN0TWVt
b3JpZXM+JiBhdmFpbGFibGVGYXN0TWVtb3JpZXMoY29uc3QgTG9ja0hvbGRlciYpCiB7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPERlcXVlPHZvaWQqLCBtYXhGYXN0TWVtb3JpZXM+PiBhdmFp
bGFibGVGYXN0TWVtb3JpZXM7CiAgICAgcmV0dXJuIGF2YWlsYWJsZUZhc3RNZW1vcmllczsKIH0K
IAoraW5saW5lIEhhc2hTZXQ8dm9pZCo+JiBhY3RpdmVGYXN0TWVtb3JpZXMoY29uc3QgTG9ja0hv
bGRlciYpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8dm9pZCo+PiBhY3Rp
dmVGYXN0TWVtb3JpZXM7CisgICAgcmV0dXJuIGFjdGl2ZUZhc3RNZW1vcmllczsKK30KKworY29u
c3QgSGFzaFNldDx2b2lkKj4mIHZpZXdBY3RpdmVGYXN0TWVtb3JpZXMoY29uc3QgTG9ja0hvbGRl
ciYgbG9ja2VyKQoreworICAgIHJldHVybiBhY3RpdmVGYXN0TWVtb3JpZXMobG9ja2VyKTsKK30K
KwogaW5saW5lIGJvb2wgdHJ5R2V0RmFzdE1lbW9yeShWTSYgdm0sIHZvaWQqJiBtZW1vcnksIHNp
emVfdCYgbWFwcGVkQ2FwYWNpdHksIE1lbW9yeTo6TW9kZSYgbW9kZSkKIHsKICAgICAvLyBXZSBt
aWdodCBHQyBoZXJlIHNvIHdlIHNob3VsZCBiZSBob2xkaW5nIHRoZSBBUEkgbG9jay4KQEAgLTk1
LDYgKzEwMyw4IEBAIGlubGluZSBib29sIHRyeUdldEZhc3RNZW1vcnkoVk0mIHZtLCB2b2lkKiYg
bWVtb3J5LCBzaXplX3QmIG1hcHBlZENhcGFjaXR5LCBNZW1vCiAgICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1lbW9yeUxvY2spOwogICAgICAgICBpZiAoIWF2YWlsYWJsZUZhc3RNZW1vcmllcyhs
b2NrZXIpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgbWVtb3J5ID0gYXZhaWxhYmxlRmFzdE1l
bW9yaWVzKGxvY2tlcikudGFrZUZpcnN0KCk7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGFj
dGl2ZUZhc3RNZW1vcmllcyhsb2NrZXIpLmFkZChtZW1vcnkpOworICAgICAgICAgICAgQVNTRVJU
X1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKICAgICAgICAgICAgIG1hcHBlZENh
cGFjaXR5ID0gZmFzdE1lbW9yeU1hcHBlZEJ5dGVzOwogICAgICAgICAgICAgbW9kZSA9IE1lbW9y
eTo6U2lnbmFsaW5nOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTcsNiArMTI3LDkg
QEAgaW5saW5lIGJvb2wgdHJ5R2V0RmFzdE1lbW9yeShWTSYgdm0sIHZvaWQqJiBtZW1vcnksIHNp
emVfdCYgbWFwcGVkQ2FwYWNpdHksIE1lbW8KICAgICAgICAgbWFwcGVkQ2FwYWNpdHkgPSBmYXN0
TWVtb3J5TWFwcGVkQnl0ZXM7CiAgICAgICAgIG1vZGUgPSBNZW1vcnk6OlNpZ25hbGluZzsKICAg
ICAgICAgYWxsb2NhdGVkRmFzdE1lbW9yaWVzKys7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1lbW9yeUxvY2spOworICAgICAgICBhdXRvIHJlc3VsdCA9IGFjdGl2ZUZhc3RNZW1vcmllcyhs
b2NrZXIpLmFkZChtZW1vcnkpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
LmlzTmV3RW50cnkpOwogICAgIH0KICAgICByZXR1cm4gbWVtb3J5OwogfQpAQCAtMTM0LDYgKzE0
Nyw4IEBAIGlubGluZSB2b2lkIHJlbGVhc2VGYXN0TWVtb3J5KHZvaWQqJiBtZW1vcnksIHNpemVf
dCB3cml0YWJsZVNpemUsIHNpemVfdCBtYXBwZWRDCiAgICAgICAgIENSQVNIKCk7CiAKICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtZW1vcnlMb2NrKTsKKyAgICBib29sIHJlc3VsdCA9IGFjdGl2ZUZh
c3RNZW1vcmllcyhsb2NrZXIpLnJlbW92ZShtZW1vcnkpOworICAgIEFTU0VSVF9VTlVTRUQocmVz
dWx0LCByZXN1bHQpOwogICAgIEFTU0VSVChhdmFpbGFibGVGYXN0TWVtb3JpZXMobG9ja2VyKS5z
aXplKCkgPCBhbGxvY2F0ZWRGYXN0TWVtb3JpZXMpOwogICAgIGF2YWlsYWJsZUZhc3RNZW1vcmll
cyhsb2NrZXIpLmFwcGVuZChtZW1vcnkpOwogICAgIG1lbW9yeSA9IG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmgKaW5kZXggMzM4NGE0MmM2MGI2NTQxNGExOGEx
Yzc3OTljMTFhYWQzNWE1MWVjNS4uYTQ0N2JkODMxYTcxYmJmZGY1OWIzMzEyMTE3ZDBjYzM2ZTYy
YWJmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiV2FzbVBhZ2VDb3VudC5oIgogCisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTkzLDYgKzk0LDEyIEBAIHByaXZh
dGU6CiAgICAgTW9kZSBtX21vZGUgeyBNb2RlOjpCb3VuZHNDaGVja2luZyB9OwogfTsKIAorc3Rh
dGljX2Fzc2VydChzaXplb2YodWludDY0X3QpID09IHNpemVvZihzaXplX3QpLCAiV2UgcmVseSBv
biBhbGxvd2luZyB0aGUgbWF4aW11bSBzaXplIG9mIE1lbW9yeSB3ZSBtYXAgdG8gYmUgMl4zMyB3
aGljaCBpcyBsYXJnZXIgdGhhbiBmaXRzIGluIGEgMzItYml0IGludGVnZXIgdGhhdCB3ZSdkIHBh
c3MgdG8gbXByb3RlY3QgaWYgdGhpcyBkaWRuJ3QgaG9sZC4iKTsKKworY29uc3Qgc2l6ZV90IGZh
c3RNZW1vcnlNYXBwZWRCeXRlcyA9IChzdGF0aWNfY2FzdDxzaXplX3Q+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDMyX3Q+OjptYXgoKSkgKyAxKSAqIDI7IC8vIHBvaW50ZXIgbWF4ICsgb2Zmc2V0
IG1heC4gVGhpcyBpcyBhbGwgd2UgbmVlZCBzaW5jZSBhIGxvYWQgc3RyYWRkbGluZyByZWFkYWJs
ZSBtZW1vcnkgd2lsbCB0cmFwLgorZXh0ZXJuIFN0YXRpY0xvY2sgbWVtb3J5TG9jazsKK2NvbnN0
IEhhc2hTZXQ8dm9pZCo+JiB2aWV3QWN0aXZlRmFzdE1lbW9yaWVzKGNvbnN0IExvY2tIb2xkZXIm
KTsKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUxZKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>