<?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>165022</bug_id>
          
          <creation_ts>2016-11-21 20:00:52 -0800</creation_ts>
          <short_desc>Fix exception scope verification failures in runtime/JSGenericTypedArrayView* files.</short_desc>
          <delta_ts>2016-11-28 15:36:08 -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 Local 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>
          
          <blocked>162351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1253331</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-21 20:00:52 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253332</commentid>
    <comment_count>1</comment_count>
      <attachid>295324</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-21 20:05:47 -0800</bug_when>
    <thetext>Created attachment 295324
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254003</commentid>
    <comment_count>2</comment_count>
      <attachid>295324</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-28 14:18:34 -0800</bug_when>
    <thetext>Comment on attachment 295324
proposed patch.

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

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h:470
&gt; +        scope.release();

Why not put the scope.release() before the switch and also keep the old return statement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254048</commentid>
    <comment_count>3</comment_count>
      <attachid>295324</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-28 15:27:24 -0800</bug_when>
    <thetext>Comment on attachment 295324
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h:470
&gt;&gt; +        scope.release();
&gt; 
&gt; Why not put the scope.release() before the switch and also keep the old return statement?

Because we want the scope.release() near the return statement.  Having it before the switch increases the opportunity for new code to be inadvertantly added between the scope.release() and the switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254053</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-28 15:35:17 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 295324 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=295324&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h:470
&gt; &gt;&gt; +        scope.release();
&gt; &gt; 
&gt; &gt; Why not put the scope.release() before the switch and also keep the old return statement?
&gt; 
&gt; Because we want the scope.release() near the return statement.  Having it
&gt; before the switch increases the opportunity for new code to be inadvertantly
&gt; added between the scope.release() and the switch.

Saam pointed out to me offline that if we have 2 ThrowScopes between the scope.release() and the return, the 2nd ThrowScope will catch the unhandled exception from the first.  So, my reasoning above does not apply.

Anyway, I&apos;ll leave it as is for this patch because it does make it easier to see the return that corresponds to the scope.release().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254054</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-28 15:36:08 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r209031: &lt;http://trac.webkit.org/r209031&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295324</attachid>
            <date>2016-11-21 20:05:47 -0800</date>
            <delta_ts>2016-11-28 14:18:34 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-165022.patch</filename>
            <type>text/plain</type>
            <size>11965</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE2LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmYWlsdXJlcyBpbiBydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3KiBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NTAyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdGcm9tSXRlcmF0b3IpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXdXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0R2VuZXJpY1R5
cGVkQXJyYXlWaWV3KToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9y
Pjo6c2V0KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6OnNwZWNpZXNDb25zdHJ1
Y3QpOgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQpOgor
ICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKToKKyAgICAg
ICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UpOgorICAgICAgICAo
SlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKToKKwog
MjAxNi0xMS0yMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlZCBhbiBleHRyYSBzcGFjZSBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBvZiBsaW5lLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCShyZXZpc2lv
biAyMDg5NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTQg
KzEwMCwxNSBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFyCiAgICAg
fQogCiAgICAgVmlld0NsYXNzKiByZXN1bHQgPSBWaWV3Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6
ZWQoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdlLnNpemUoKSk7Ci0gICAgaWYgKCFyZXN1bHQpCi0g
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIEFTU0VSVCgh
IXNjb3BlLmV4Y2VwdGlvbigpID09ICFyZXN1bHQpOworICAgIGlmIChVTkxJS0VMWSghcmVzdWx0
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc3RvcmFnZS5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoIXJlc3VsdC0+c2V0SW5kZXgo
ZXhlYywgaSwgc3RvcmFnZS5hdChpKSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChzY29wZS5leGNl
cHRpb24oKSk7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IHJlc3VsdC0+c2V0SW5kZXgoZXhlYywg
aSwgc3RvcmFnZS5hdChpKSk7CisgICAgICAgIEFTU0VSVChzY29wZS5leGNlcHRpb24oKSB8fCBz
dWNjZXNzKTsKKyAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTMzLDYgKzEz
NCw3IEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXIKICAgICAgICAg
ICAgIGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBWaWV3Q2xhc3M6
OmVsZW1lbnRTaXplOwogICAgICAgICB9CiAKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAg
ICAgICByZXR1cm4gVmlld0NsYXNzOjpjcmVhdGUoZXhlYywgc3RydWN0dXJlLCBidWZmZXIsIG9m
ZnNldCwgbGVuZ3RoKTsKICAgICB9CiAgICAgQVNTRVJUKCFvZmZzZXQgJiYgIWxlbmd0aE9wdCk7
CkBAIC0xNTQsNiArMTU2LDcgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcgogICAgICAgICAgICAgLy8gU28gd2UgdXNlIFZNSW5xdWlyeS4gQW5kIHB1cmdlIHRoZSBv
cGFxdWUgb2JqZWN0IGNhc2VzIChwcm94eSBhbmQgbmFtZXNwYWNlIG9iamVjdCkgYnkgaXNUYWlu
dGVkQnlPcGFxdWVPYmplY3QoKSBndWFyZC4KICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBsZW5n
dGhTbG90KG9iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWly
eSk7CiAgICAgICAgICAgICBvYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGxlbmd0aFNsb3QpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CiAKICAgICAgICAgICAgIEpTVmFsdWUgaXRlcmF0b3JGdW5j
ID0gb2JqZWN0LT5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wpOwog
ICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CkBAIC0xNzgs
NiArMTgxLDcgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcgogICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlIGl0ZXJhdG9yID0gY2FsbChleGVjLCBpdGVyYXRvckZ1
bmMsIGNhbGxUeXBlLCBjYWxsRGF0YSwgb2JqZWN0LCBhcmd1bWVudHMpOwogICAgICAgICAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAorICAgICAgICAg
ICAgICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdGcm9tSXRlcmF0b3I8Vmlld0NsYXNzPihleGVj
LCBzdHJ1Y3R1cmUsIGl0ZXJhdG9yKTsKICAgICAgICAgICAgIH0KIApAQCAtMTg3LDExICsxOTEs
MTEgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcgogCiAgICAgICAg
IAogICAgICAgICBWaWV3Q2xhc3MqIHJlc3VsdCA9IFZpZXdDbGFzczo6Y3JlYXRlVW5pbml0aWFs
aXplZChleGVjLCBzdHJ1Y3R1cmUsIGxlbmd0aCk7Ci0gICAgICAgIGlmICghcmVzdWx0KSB7Ci0g
ICAgICAgICAgICBBU1NFUlQoc2NvcGUuZXhjZXB0aW9uKCkpOworICAgICAgICBBU1NFUlQoISFz
Y29wZS5leGNlcHRpb24oKSA9PSAhcmVzdWx0KTsKKyAgICAgICAgaWYgKFVOTElLRUxZKCFyZXN1
bHQpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KICAgICAgICAgCisg
ICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgaWYgKCFyZXN1bHQtPnNldChleGVjLCAw
LCBvYmplY3QsIDAsIGxlbmd0aCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgCkBAIC0yMDMsNiArMjA3LDcgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmlj
VHlwZWRBcgogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZmlyc3RWYWx1ZS50b0luZGV4KGV4ZWMs
ICJsZW5ndGgiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIFZpZXdDbGFzczo6Y3JlYXRlKGV4ZWMsIHN0
cnVjdHVyZSwgbGVuZ3RoKTsKIH0KIApAQCAtMjI2LDYgKzIzMSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2UKICAgICAgICAgaWYgKFZpZXdDbGFzczo6VHlwZWRB
cnJheVN0b3JhZ2VUeXBlID09IFR5cGVEYXRhVmlldykKICAgICAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkRhdGFWaWV3IGNvbnN0cnVj
dG9yIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4iKSk7CiAKKyAgICAgICAgc2NvcGUu
cmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFZpZXdDbGFzczo6Y3Jl
YXRlKGV4ZWMsIHN0cnVjdHVyZSwgMCkpOwogICAgIH0KIApAQCAtMjUxLDYgKzI1Nyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2UKICAgICAgICAgfQogICAgIH0K
IAorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0
cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHM8Vmlld0NsYXNzPihleGVjLCBz
dHJ1Y3R1cmUsIEpTVmFsdWU6OmVuY29kZShmaXJzdFZhbHVlKSwgb2Zmc2V0LCBsZW5ndGgpKTsK
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgJKHJldmlzaW9uIDIwODk1NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsMzAgKzI2MywzOSBAQCBib29sIEpTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpzCiAgICAgCiAgICAgc3dpdGNoIChjaS0+dHlw
ZWRBcnJheVN0b3JhZ2VUeXBlKSB7CiAgICAgY2FzZSBUeXBlSW50ODoKKyAgICAgICAgc2NvcGUu
cmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gc2V0V2l0aFNwZWNpZmljVHlwZTxJbnQ4QWRhcHRv
cj4oCiAgICAgICAgICAgICBleGVjLCBvZmZzZXQsIGpzQ2FzdDxKU0ludDhBcnJheSo+KG9iamVj
dCksIG9iamVjdE9mZnNldCwgbGVuZ3RoLCB0eXBlKTsKICAgICBjYXNlIFR5cGVJbnQxNjoKKyAg
ICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gc2V0V2l0aFNwZWNpZmljVHlw
ZTxJbnQxNkFkYXB0b3I+KAogICAgICAgICAgICAgZXhlYywgb2Zmc2V0LCBqc0Nhc3Q8SlNJbnQx
NkFycmF5Kj4ob2JqZWN0KSwgb2JqZWN0T2Zmc2V0LCBsZW5ndGgsIHR5cGUpOwogICAgIGNhc2Ug
VHlwZUludDMyOgorICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBzZXRX
aXRoU3BlY2lmaWNUeXBlPEludDMyQWRhcHRvcj4oCiAgICAgICAgICAgICBleGVjLCBvZmZzZXQs
IGpzQ2FzdDxKU0ludDMyQXJyYXkqPihvYmplY3QpLCBvYmplY3RPZmZzZXQsIGxlbmd0aCwgdHlw
ZSk7CiAgICAgY2FzZSBUeXBlVWludDg6CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAg
ICAgcmV0dXJuIHNldFdpdGhTcGVjaWZpY1R5cGU8VWludDhBZGFwdG9yPigKICAgICAgICAgICAg
IGV4ZWMsIG9mZnNldCwganNDYXN0PEpTVWludDhBcnJheSo+KG9iamVjdCksIG9iamVjdE9mZnNl
dCwgbGVuZ3RoLCB0eXBlKTsKICAgICBjYXNlIFR5cGVVaW50OENsYW1wZWQ6CisgICAgICAgIHNj
b3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJuIHNldFdpdGhTcGVjaWZpY1R5cGU8VWludDhD
bGFtcGVkQWRhcHRvcj4oCiAgICAgICAgICAgICBleGVjLCBvZmZzZXQsIGpzQ2FzdDxKU1VpbnQ4
Q2xhbXBlZEFycmF5Kj4ob2JqZWN0KSwgb2JqZWN0T2Zmc2V0LCBsZW5ndGgsIHR5cGUpOwogICAg
IGNhc2UgVHlwZVVpbnQxNjoKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1
cm4gc2V0V2l0aFNwZWNpZmljVHlwZTxVaW50MTZBZGFwdG9yPigKICAgICAgICAgICAgIGV4ZWMs
IG9mZnNldCwganNDYXN0PEpTVWludDE2QXJyYXkqPihvYmplY3QpLCBvYmplY3RPZmZzZXQsIGxl
bmd0aCwgdHlwZSk7CiAgICAgY2FzZSBUeXBlVWludDMyOgorICAgICAgICBzY29wZS5yZWxlYXNl
KCk7CiAgICAgICAgIHJldHVybiBzZXRXaXRoU3BlY2lmaWNUeXBlPFVpbnQzMkFkYXB0b3I+KAog
ICAgICAgICAgICAgZXhlYywgb2Zmc2V0LCBqc0Nhc3Q8SlNVaW50MzJBcnJheSo+KG9iamVjdCks
IG9iamVjdE9mZnNldCwgbGVuZ3RoLCB0eXBlKTsKICAgICBjYXNlIFR5cGVGbG9hdDMyOgorICAg
ICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBzZXRXaXRoU3BlY2lmaWNUeXBl
PEZsb2F0MzJBZGFwdG9yPigKICAgICAgICAgICAgIGV4ZWMsIG9mZnNldCwganNDYXN0PEpTRmxv
YXQzMkFycmF5Kj4ob2JqZWN0KSwgb2JqZWN0T2Zmc2V0LCBsZW5ndGgsIHR5cGUpOwogICAgIGNh
c2UgVHlwZUZsb2F0NjQ6CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgcmV0dXJu
IHNldFdpdGhTcGVjaWZpY1R5cGU8RmxvYXQ2NEFkYXB0b3I+KAogICAgICAgICAgICAgZXhlYywg
b2Zmc2V0LCBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXkqPihvYmplY3QpLCBvYmplY3RPZmZzZXQsIGxl
bmd0aCwgdHlwZSk7CiAgICAgY2FzZSBOb3RUeXBlZEFycmF5OgpAQCAtMzk4LDExICs0MDcsMTMg
QEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZAogCiAgICAgICAgIGlm
IChkZXNjcmlwdG9yLnZhbHVlKCkpIHsKICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCB1bnVz
ZWQoSlNWYWx1ZSh0aGlzT2JqZWN0KSwgc2hvdWxkVGhyb3cpOworICAgICAgICAgICAgc2NvcGUu
cmVsZWFzZSgpOwogICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPnB1dCh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgdW51c2VkKTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCisgICAgc2NvcGUucmVsZWFz
ZSgpOwogICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5
cGVGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCShyZXZpc2lvbiAy
MDg5NTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw4ICs1Mywx
MCBAQCBpbmxpbmUgSlNBcnJheUJ1ZmZlclZpZXcqIHNwZWNpZXNDb25zdHJ1CiAgICAgSlNWYWx1
ZSBjb25zdHJ1Y3RvciA9IGV4ZW1wbGFyLT5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+Y29u
c3RydWN0b3IpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCi0g
ICAgaWYgKGNvbnN0cnVjdG9yLmlzVW5kZWZpbmVkKCkpCisgICAgaWYgKGNvbnN0cnVjdG9yLmlz
VW5kZWZpbmVkKCkpIHsKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4g
ZGVmYXVsdENvbnN0cnVjdG9yKCk7CisgICAgfQogICAgIGlmICghY29uc3RydWN0b3IuaXNPYmpl
Y3QoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFs
KCJjb25zdHJ1Y3RvciBQcm9wZXJ0eSBzaG91bGQgbm90IGJlIG51bGwiKSk7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtNjMsOCArNjUsMTAgQEAgaW5saW5lIEpTQXJyYXlCdWZmZXJWaWV3
KiBzcGVjaWVzQ29uc3RydQogICAgIEpTVmFsdWUgc3BlY2llcyA9IGNvbnN0cnVjdG9yLmdldChl
eGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIAotICAgIGlmIChzcGVjaWVzLmlzVW5kZWZpbmVkT3JO
dWxsKCkpCisgICAgaWYgKHNwZWNpZXMuaXNVbmRlZmluZWRPck51bGwoKSkgeworICAgICAgICBz
Y29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBkZWZhdWx0Q29uc3RydWN0b3IoKTsKKyAg
ICB9CiAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNvbnN0cnVjdChleGVjLCBzcGVjaWVzLCBhcmdz
LCAic3BlY2llcyBpcyBub3QgYSBjb25zdHJ1Y3RvciIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIG51bGxwdHIpOwpAQCAtMTM1LDYgKzEzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZ2VuZXJpY1R5cGUKIAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHRoaXNPYmpl
Y3QtPnNldChleGVjLCBvZmZzZXQsIHNvdXJjZUFycmF5LCAwLCBsZW5ndGgsIENvcHlUeXBlOjpV
bm9ic2VydmFibGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CkBAIC0yNzMsNiArMjc4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5l
cmljVHlwZQogICAgICAgICAgICAgam9pbmVyLmFwcGVuZCgqZXhlYywgdGhpc09iamVjdC0+Z2V0
SW5kZXhRdWlja2x5KGkpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICB9CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqb2luZXIuam9pbigqZXhlYykpOwogICAg
IH07CiAKQEAgLTQ2MSwzNyArNDY3LDQ0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2VuZXJpY1R5cGUKICAgICBsZW5ndGggPSBzdGQ6Om1pbihsZW5ndGgsIHJlc3VsdC0+bGVuZ3Ro
KCkpOwogICAgIHN3aXRjaCAocmVzdWx0LT5jbGFzc0luZm8oKS0+dHlwZWRBcnJheVN0b3JhZ2VU
eXBlKSB7CiAgICAgY2FzZSBUeXBlSW50ODoKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAg
ICAgICBqc0Nhc3Q8SlNJbnQ4QXJyYXkqPihyZXN1bHQpLT5zZXQoZXhlYywgMCwgdGhpc09iamVj
dCwgYmVnaW4sIGxlbmd0aCwgQ29weVR5cGU6OkxlZnRUb1JpZ2h0KTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICBjYXNlIFR5cGVJ
bnQxNjoKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICBqc0Nhc3Q8SlNJbnQxNkFy
cmF5Kj4ocmVzdWx0KS0+c2V0KGV4ZWMsIDAsIHRoaXNPYmplY3QsIGJlZ2luLCBsZW5ndGgsIENv
cHlUeXBlOjpMZWZ0VG9SaWdodCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgY2FzZSBUeXBlSW50MzI6CisgICAgICAgIHNjb3Bl
LnJlbGVhc2UoKTsKICAgICAgICAganNDYXN0PEpTSW50MzJBcnJheSo+KHJlc3VsdCktPnNldChl
eGVjLCAwLCB0aGlzT2JqZWN0LCBiZWdpbiwgbGVuZ3RoLCBDb3B5VHlwZTo6TGVmdFRvUmlnaHQp
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogICAgIGNhc2UgVHlwZVVpbnQ4OgorICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAg
IGpzQ2FzdDxKU1VpbnQ4QXJyYXkqPihyZXN1bHQpLT5zZXQoZXhlYywgMCwgdGhpc09iamVjdCwg
YmVnaW4sIGxlbmd0aCwgQ29weVR5cGU6OkxlZnRUb1JpZ2h0KTsKLSAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICBjYXNlIFR5cGVVaW50
OENsYW1wZWQ6CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAganNDYXN0PEpTVWlu
dDhDbGFtcGVkQXJyYXkqPihyZXN1bHQpLT5zZXQoZXhlYywgMCwgdGhpc09iamVjdCwgYmVnaW4s
IGxlbmd0aCwgQ29weVR5cGU6OkxlZnRUb1JpZ2h0KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICBjYXNlIFR5cGVVaW50MTY6Cisg
ICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAganNDYXN0PEpTVWludDE2QXJyYXkqPihy
ZXN1bHQpLT5zZXQoZXhlYywgMCwgdGhpc09iamVjdCwgYmVnaW4sIGxlbmd0aCwgQ29weVR5cGU6
OkxlZnRUb1JpZ2h0KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKICAgICBjYXNlIFR5cGVVaW50MzI6CisgICAgICAgIHNjb3BlLnJlbGVh
c2UoKTsKICAgICAgICAganNDYXN0PEpTVWludDMyQXJyYXkqPihyZXN1bHQpLT5zZXQoZXhlYywg
MCwgdGhpc09iamVjdCwgYmVnaW4sIGxlbmd0aCwgQ29weVR5cGU6OkxlZnRUb1JpZ2h0KTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAg
ICBjYXNlIFR5cGVGbG9hdDMyOgorICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIGpz
Q2FzdDxKU0Zsb2F0MzJBcnJheSo+KHJlc3VsdCktPnNldChleGVjLCAwLCB0aGlzT2JqZWN0LCBi
ZWdpbiwgbGVuZ3RoLCBDb3B5VHlwZTo6TGVmdFRvUmlnaHQpOwotICAgICAgICBicmVhazsKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgIGNhc2UgVHlwZUZsb2F0
NjQ6CisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAganNDYXN0PEpTRmxvYXQ2NEFy
cmF5Kj4ocmVzdWx0KS0+c2V0KGV4ZWMsIDAsIHRoaXNPYmplY3QsIGJlZ2luLCBsZW5ndGgsIENv
cHlUeXBlOjpMZWZ0VG9SaWdodCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KQEAgLTUzOCw2ICs1NTEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlCiAgICAgaWYgKHNw
ZWNpZXMgPT0gZGVmYXVsdENvbnN0cnVjdG9yKSB7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gY2FsbGVlLT5nbG9iYWxPYmplY3QoKS0+dHlwZWRBcnJheVN0cnVjdHVyZShWaWV3Q2xh
c3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSk7CiAKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFZpZXdDbGFzczo6Y3JlYXRlKAogICAgICAg
ICAgICAgZXhlYywgc3RydWN0dXJlLCBhcnJheUJ1ZmZlciwKICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPmJ5dGVPZmZzZXQoKSArIG9mZnNldCAqIFZpZXdDbGFzczo6ZWxlbWVudFNpemUsCg==
</data>
<flag name="review"
          id="317942"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>