<?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>163918</bug_id>
          
          <creation_ts>2016-10-24 15:46:46 -0700</creation_ts>
          <short_desc>JSONParse should not crash with null Strings</short_desc>
          <delta_ts>2016-10-27 02:06:39 -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>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1243930</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-24 15:46:46 -0700</bug_when>
    <thetext>JSONParse should not crash with null Strings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243936</commentid>
    <comment_count>1</comment_count>
      <attachid>292670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-24 15:50:36 -0700</bug_when>
    <thetext>Created attachment 292670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243939</commentid>
    <comment_count>2</comment_count>
      <attachid>292670</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-10-24 15:54:05 -0700</bug_when>
    <thetext>Comment on attachment 292670
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243940</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-24 15:55:00 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/207785</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244112</commentid>
    <comment_count>4</comment_count>
      <attachid>292670</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-24 22:42:16 -0700</bug_when>
    <thetext>Comment on attachment 292670
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        When JSONParse is called with a null String, it calls String::is8bit, which dereferences a null pointer.
&gt; +        This is happening with new work in the Fetch API, but callers of JSONParse should not have to check
&gt; +        if the String is null.

I am not sure I agree.

It’s not surprising that the Fetch API doesn’t get exactly what it wants when calling an internal JavaScript runtime function. We can export a different function with appropriate helpful semantics for use in Fetch.

&gt; Source/JavaScriptCore/API/tests/JSONParseTest.cpp:53
&gt; +    JSValue v0 = JSONParse(exec, &quot;&quot;);
&gt; +    JSValue v1 = JSONParse(exec, &quot;#$%^&quot;);
&gt; +    JSValue v2 = JSONParse(exec, String());
&gt; +    UChar emptyUCharArray[1] = { &apos;\0&apos; };
&gt; +    JSValue v3 = JSONParse(exec, String(emptyUCharArray, 0));
&gt; +    JSValue v4;
&gt; +    JSValue v5 = JSONParse(exec, &quot;123&quot;);

This test is looking at return values and not at whether an exception is thrown. That’s the reason the test seems to indicate that empty string and null string have the same result here but I am pretty sure they don’t, because the empty string case throws an exception and the null string case does not.

&gt; Source/JavaScriptCore/runtime/JSONObject.cpp:795
&gt; +    if (json.isNull())
&gt; +        return JSValue();

We don’t use null strings in the JavaScript engine, so normally we would not need to check for them. It’s also not normal for a JavaScript function to return an empty JSValue unless it has thrown an exception.

I don’t think this change is a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244812</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-26 09:42:13 -0700</bug_when>
    <thetext>Yep, JSON.parse(&quot;&quot;) throws an exception. Something needs to change.
I&apos;ll have to look into exactly what was going wrong with the fetch API in this case and whether it should throw an exception.  We were using fulfillPromiseWithJSON</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245061</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-27 02:06:39 -0700</bug_when>
    <thetext>If this is only related to fetch, we should probably assert that string is not null in  fulfillPromiseWithJSON and fix fetch code wherever needed.

A fetch body can be null, but we should not end up with a null string body.
Empty string fetch bodies are possible on the other hand.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292670</attachid>
            <date>2016-10-24 15:50:36 -0700</date>
            <delta_ts>2016-10-24 15:54:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163918-20161024154651.patch</filename>
            <type>text/plain</type>
            <size>12552</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3Nzg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE2LTEwLTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgSlNPTlBhcnNlIHNob3VsZCBub3QgY3Jhc2ggd2l0aCBudWxsIFN0cmluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzkxOAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg4MzQwOTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBKU09OUGFyc2UgaXMgY2FsbGVkIHdpdGgg
YSBudWxsIFN0cmluZywgaXQgY2FsbHMgU3RyaW5nOjppczhiaXQsIHdoaWNoIGRlcmVmZXJlbmNl
cyBhIG51bGwgcG9pbnRlci4KKyAgICAgICAgVGhpcyBpcyBoYXBwZW5pbmcgd2l0aCBuZXcgd29y
ayBpbiB0aGUgRmV0Y2ggQVBJLCBidXQgY2FsbGVycyBvZiBKU09OUGFyc2Ugc2hvdWxkIG5vdCBo
YXZlIHRvIGNoZWNrCisgICAgICAgIGlmIHRoZSBTdHJpbmcgaXMgbnVsbC4KKworICAgICAgICAq
IEFQSS90ZXN0cy9KU09OUGFyc2VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgICh0ZXN0SlNPTlBh
cnNlKToKKyAgICAgICAgKiBBUEkvdGVzdHMvSlNPTlBhcnNlVGVzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAobWFpbik6CisgICAgICAgIFRlc3Qg
cGFyc2luZyBudWxsIFN0cmluZ3MuICBUaGV5IHNob3VsZCBoYXZlIHRoZSBzYW1lIHJlc3VsdCBh
cyBwYXJzaW5nIGVtcHR5IFN0cmluZ3MuCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU09OUGFyc2UpOgorICAgICAgICBDaGVjayBmb3IgbnVsbCBTdHJpbmdz
LgorICAgICAgICAqIHNoZWxsL1BsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE2LTEwLTI0ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFNjb3BlIGNoYWluIHNob3VsZG4ndCBzaG93IGVtcHR5IENsb3N1cmUgc2VjdGlvbnMK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvSlNPTlBhcnNlVGVzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9KU09OUGFyc2VU
ZXN0LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L0pTT05QYXJzZVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNPTlBhcnNlVGVzdC5oIgor
CisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisj
aW5jbHVkZSAiSlNPTk9iamVjdC5oIgorI2luY2x1ZGUgIlZNLmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitpbnQgdGVzdEpTT05QYXJzZSgpCit7
CisgICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKKworICAgIFJlZlB0cjxWTT4gdm0gPSBWTTo6Y3Jl
YXRlKCk7CisKKyAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKHZtLmdldCgpKTsKKyAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZSgqdm0sIEpTR2xv
YmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKnZtLCBqc051bGwoKSkpOworCisgICAgRXhlY1N0
YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZSB2MCA9
IEpTT05QYXJzZShleGVjLCAiIik7CisgICAgSlNWYWx1ZSB2MSA9IEpTT05QYXJzZShleGVjLCAi
IyQlXiIpOworICAgIEpTVmFsdWUgdjIgPSBKU09OUGFyc2UoZXhlYywgU3RyaW5nKCkpOworICAg
IFVDaGFyIGVtcHR5VUNoYXJBcnJheVsxXSA9IHsgJ1wwJyB9OworICAgIEpTVmFsdWUgdjMgPSBK
U09OUGFyc2UoZXhlYywgU3RyaW5nKGVtcHR5VUNoYXJBcnJheSwgMCkpOworICAgIEpTVmFsdWUg
djQ7CisgICAgSlNWYWx1ZSB2NSA9IEpTT05QYXJzZShleGVjLCAiMTIzIik7CisKKyAgICBmYWls
ZWQgPSBmYWlsZWQgfHwgKHYwICE9IHYxKTsKKyAgICBmYWlsZWQgPSBmYWlsZWQgfHwgKHYxICE9
IHYyKTsKKyAgICBmYWlsZWQgPSBmYWlsZWQgfHwgKHYyICE9IHYzKTsKKyAgICBmYWlsZWQgPSBm
YWlsZWQgfHwgKHYzICE9IHY0KTsKKyAgICBmYWlsZWQgPSBmYWlsZWQgfHwgKHY0ID09IHY1KTsK
KworICAgIHZtID0gbnVsbHB0cjsKKworICAgIGlmIChmYWlsZWQpCisgICAgICAgIHByaW50Zigi
RkFJTDogSlNPTlBhcnNlIFN0cmluZyB0ZXN0LlxuIik7CisgICAgZWxzZQorICAgICAgICBwcmlu
dGYoIlBBU1M6IEpTT05QYXJzZSBTdHJpbmcgdGVzdC5cbiIpOworCisgICAgcmV0dXJuIGZhaWxl
ZDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvSlNPTlBhcnNlVGVz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvSlNPTlBh
cnNlVGVzdC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvSlNPTlBhcnNlVGVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorICAgIAoraW50IHRlc3RKU09OUGFyc2UoKTsKKyAgICAKKyNpZmRlZiBfX2NwbHVz
cGx1cworfSAvKiBleHRlcm4gIkMiICovCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCShyZXZpc2lvbiAyMDc3NzMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5KQpAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIkV4ZWN1dGlvblRpbWVMaW1pdFRlc3QuaCIKICNpbmNsdWRlICJG
dW5jdGlvbk92ZXJyaWRlc1Rlc3QuaCIKICNpbmNsdWRlICJHbG9iYWxDb250ZXh0V2l0aEZpbmFs
aXplclRlc3QuaCIKKyNpbmNsdWRlICJKU09OUGFyc2VUZXN0LmgiCiAjaW5jbHVkZSAiUGluZ1Bv
bmdTdGFja092ZXJmbG93VGVzdC5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlDVGVzdC5oIgogCkBA
IC0xMTI5LDggKzExMzAsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAg
IHRlc3RPYmplY3RpdmVDQVBJKCk7CiAjZW5kaWYKIAotCi0KICAgICBjb25zdCBjaGFyICpzY3Jp
cHRQYXRoID0gInRlc3RhcGkuanMiOwogICAgIGlmIChhcmdjID4gMSkgewogICAgICAgICBzY3Jp
cHRQYXRoID0gYXJndlsxXTsKQEAgLTE4ODksNiArMTg4OCw3IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgZmFpbGVkID0gdGVzdEZ1bmN0aW9uT3ZlcnJpZGVzKCkgfHwg
ZmFpbGVkOwogICAgIGZhaWxlZCA9IHRlc3RHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplcigpIHx8
IGZhaWxlZDsKICAgICBmYWlsZWQgPSB0ZXN0UGluZ1BvbmdTdGFja092ZXJmbG93KCkgfHwgZmFp
bGVkOworICAgIGZhaWxlZCA9IHRlc3RKU09OUGFyc2UoKSB8fCBmYWlsZWQ7CiAKICAgICAvLyBD
bGVhciBvdXQgbG9jYWwgdmFyaWFibGVzIHBvaW50aW5nIGF0IEpTT2JqZWN0UmVmcyB0byBhbGxv
dyB0aGVpciB2YWx1ZXMgdG8gYmUgY29sbGVjdGVkCiAgICAgZnVuY3Rpb24gPSBOVUxMOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwNzc3MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQzLDYgKzEyNDMsNyBAQAogCQk1M0ZBMkFFMzFDRjM4MDM5
MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkEy
QUUyMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuY3BwICovOyB9OwogCQk1M0ZEMDREMzFEN0FCMjc3MDAzMjg3RDMgLyogV2Fz
bUNhbGxpbmdDb252ZW50aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzRkQwNEQxMUQ3QUIxODcwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZl
bnRpb24uY3BwICovOyB9OwogCQk1M0ZEMDRENDFEN0FCMjkxMDAzMjg3RDMgLyogV2FzbUNhbGxp
bmdDb252ZW50aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1M0ZEMDREMjFEN0FCMTg3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmgg
Ki87IH07CisJCTVDNEU4RTk2MURCRUJFNjIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEU4RTk0MURC
RUJEQTIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0LmNwcCAqLzsgfTsKIAkJNUQ1RDhBRDEwRTBE
MEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRp
dC5keWxpYiAqLzsgfTsKIAkJNURCQjE1MUIxMzFEMEIzMTAwNTZBRDM2IC8qIHRlc3RhcGkuanMg
aW4gQ29weSBTdXBwb3J0IFNjcmlwdCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEQ4NTc3NDBBNDY5NkM4MDAzMjE0NkMgLyogdGVzdGFwaS5qcyAqLzsgfTsKIAkJNURCQjE1
MjUxMzFEMEJENzAwNTZBRDM2IC8qIG1pbmlkb20uanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDEyMTEwRDBBNDg3ODg3MDA0ODAy
NTUgLyogbWluaWRvbS5qcyAqLzsgfTsKQEAgLTM1NDgsNiArMzU0OSw4IEBACiAJCTUzRkEyQUUy
MUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTNGRDA0RDExRDdBQjE4NzAwMzI4N0QzIC8qIFdhc21DYWxsaW5n
Q29udmVudGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNt
Q2FsbGluZ0NvbnZlbnRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0ZE
MDREMjFEN0FCMTg3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21DYWxsaW5nQ29udmVudGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1QzRFOEU5NDFEQkVCREEyMDAzNkYxRkMgLyogSlNPTlBh
cnNlVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU09OUGFy
c2VUZXN0LmNwcDsgcGF0aCA9IEFQSS90ZXN0cy9KU09OUGFyc2VUZXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM0RThFOTUxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJz
ZVRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNPTlBhcnNlVGVzdC5o
OyBwYXRoID0gQVBJL3Rlc3RzL0pTT05QYXJzZVRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgbmFtZSA9IGxpYmVkaXQuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJlZGl0
LmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk1REFGRDZDQjE0NkI2ODYz
MDBGQkVGQjQgLyogSlNDLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEpTQy54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUREREY0NDYxNEZFRTcyMjAwQjRGQjREIC8qIExM
SW50RGVzaXJlZE9mZnNldHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJ
bnREZXNpcmVkT2Zmc2V0cy5oOyBwYXRoID0gTExJbnRPZmZzZXRzL0xMSW50RGVzaXJlZE9mZnNl
dHMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTUyODMsNiArNTI4
Niw4IEBACiAJCQkJRkUwRDRBMDgxQUJBMjQzNzAwMkY1NEJGIC8qIEdsb2JhbENvbnRleHRXaXRo
RmluYWxpemVyVGVzdC5oICovLAogCQkJCUMyMTgxRkMwMThBOTQ4RkIwMDI1QTIzNSAvKiBKU0V4
cG9ydFRlc3RzLmggKi8sCiAJCQkJQzIxODFGQzExOEE5NDhGQjAwMjVBMjM1IC8qIEpTRXhwb3J0
VGVzdHMubW0gKi8sCisJCQkJNUM0RThFOTQxREJFQkRBMjAwMzZGMUZDIC8qIEpTT05QYXJzZVRl
c3QuY3BwICovLAorCQkJCTVDNEU4RTk1MURCRUJEQTIwMDM2RjFGQyAvKiBKU09OUGFyc2VUZXN0
LmggKi8sCiAJCQkJMTQ0MDA1MTcwQTUzMUNCNTAwMDVGMDYxIC8qIG1pbmlkb20gKi8sCiAJCQkJ
RkVEQTUwRDQxQjk3RjQ0MjAwOUEzQjRGIC8qIFBpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3Bw
ICovLAogCQkJCUZFREE1MEQ1MUI5N0Y0RDkwMDlBM0I0RiAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZs
b3dUZXN0LmggKi8sCkBAIC05MTk1LDYgKzkyMDAsNyBAQAogCQkJCUMyOUVDQjAzMTgwNEQwRUQw
MEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUMyMDMyODIwMTk4MTk3OUQwMDg4QjQ5OSAvKiBDdXN0b21HbG9iYWxPYmplY3RD
bGFzc1Rlc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCUMyODhCMkRFMThBNTREM0UwMDdCRTQwQiAv
KiBEYXRlVGVzdHMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1QzRFOEU5NjFEQkVCRTYyMDAzNkYx
RkMgLyogSlNPTlBhcnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTBENEEwNjFBQjhE
RDBBMDAyRjU0QkYgLyogRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRTBENEEwOTFBQkEyNDM3MDAyRjU0QkYgLyogR2xvYmFsQ29udGV4dFdpdGhGaW5hbGl6
ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyMTgxRkMyMThBOTQ4RkIwMDI1QTIzNSAv
KiBKU0V4cG9ydFRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkocmV2aXNpb24gMjA3NzczKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc5MSw2ICs3OTEsOSBAQCBKU1ZhbHVlIEpTT05QYXJzZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0CiB7CiAgICAgTG9jYWxTY29wZSBzY29wZShleGVjLT52bSgpKTsKIAorICAgIGlmIChqc29u
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworCiAgICAgaWYgKGpzb24uaXM4
Qml0KCkpIHsKICAgICAgICAgTGl0ZXJhbFBhcnNlcjxMQ2hhcj4ganNvblBhcnNlcihleGVjLCBq
c29uLmNoYXJhY3RlcnM4KCksIGpzb24ubGVuZ3RoKCksIFN0cmljdEpTT04pOwogICAgICAgICBy
ZXR1cm4ganNvblBhcnNlci50cnlMaXRlcmFsUGFyc2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9zaGVsbC9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1XaW4uY21ha2UJKHJldmlzaW9uIDIwNzc3MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9ybVdpbi5jbWFrZQkod29ya2luZyBj
b3B5KQpAQCAtMzEsOSArMzEsMTAgQEAgYWRkX2xpYnJhcnkodGVzdGFwaUxpYiBTSEFSRUQKICAg
ICAuLi9BUEkvdGVzdHMvRXhlY3V0aW9uVGltZUxpbWl0VGVzdC5jcHAKICAgICAuLi9BUEkvdGVz
dHMvRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcAogICAgIC4uL0FQSS90ZXN0cy9HbG9iYWxDb250
ZXh0V2l0aEZpbmFsaXplclRlc3QuY3BwCisgICAgLi4vQVBJL3Rlc3RzL0pTT05QYXJzZVRlc3Qu
Y3BwCiAgICAgLi4vQVBJL3Rlc3RzL1BpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuY3BwCiAgICAg
Li4vQVBJL3Rlc3RzL3Rlc3RhcGkuYwotICAgLi4vQVBJL3Rlc3RzL1R5cGVkQXJyYXlDVGVzdC5j
cHAKKyAgICAuLi9BUEkvdGVzdHMvVHlwZWRBcnJheUNUZXN0LmNwcAogKQogc2V0X3NvdXJjZV9m
aWxlc19wcm9wZXJ0aWVzKC4uL0FQSS90ZXN0cy9DdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3Qu
YyBQUk9QRVJUSUVTIENPTVBJTEVfRkxBR1MgIi9UUCAvTVQiKQogc2V0X3NvdXJjZV9maWxlc19w
cm9wZXJ0aWVzKC4uL0FQSS90ZXN0cy90ZXN0YXBpLmMgUFJPUEVSVElFUyBDT01QSUxFX0ZMQUdT
ICIvVFAgL01UIikK
</data>
<flag name="review"
          id="315690"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>