<?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>206572</bug_id>
          
          <creation_ts>2020-01-21 23:28:42 -0800</creation_ts>
          <short_desc>KeyedDecoderGeneric crashes when it accesses a data with empty string key.</short_desc>
          <delta_ts>2020-01-23 02:59:14 -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>Platform</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Takashi Komori">takashi.komori</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>basuke</cc>
    
    <cc>chris.reid</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>fujii</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>takashi.komori</cc>
    
    <cc>tomoki.imai</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1609469</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-21 23:28:42 -0800</bug_when>
    <thetext>When KeyedDecoderGeneric decodes a record associated with empty string key, it tries to add a record to a HashMap with null string (not empty string) but adding HashMap fails because HashMap can&apos;t treat null string as a key.

While adding a record with null string key, StringHash::hash() crashes by accessing null pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609472</commentid>
    <comment_count>1</comment_count>
      <attachid>388399</attachid>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-21 23:46:26 -0800</bug_when>
    <thetext>Created attachment 388399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609473</commentid>
    <comment_count>2</comment_count>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-21 23:51:05 -0800</bug_when>
    <thetext>Added test just encodes/decodes a boolean data with empty string key but I only tested on wincairo port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609486</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-01-22 00:52:06 -0800</bug_when>
    <thetext>How did you find this bug? Is this a real use case? empty string key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609492</commentid>
    <comment_count>4</comment_count>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-22 02:37:21 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #3)
&gt; How did you find this bug? Is this a real use case? empty string key.

This crash occurred and found when I tried to decode broken encoded data (zero filled from middle) by chance.
So I think it doesn&apos;t occur in normal scenarios.

To avoid decoding collapsed data, I tried to verify encoded data by using Decoder::verifyChecksum (PersistentDecoder.cpp)
But it didn&apos;t work because we can&apos;t verify before all decoding is done.
Persistence::Decoder calculates checksum while decoding data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609499</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-01-22 03:25:17 -0800</bug_when>
    <thetext>String::fromUTF8 will return a null string for invalid UTF-8 sequence.
You should check null-string after caling String::fromUTF8.

  result = String::fromUTF8(buffer.data(), size);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610003</commentid>
    <comment_count>6</comment_count>
      <attachid>388524</attachid>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-23 00:57:41 -0800</bug_when>
    <thetext>Created attachment 388524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610004</commentid>
    <comment_count>7</comment_count>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-23 00:59:01 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #5)
&gt; String::fromUTF8 will return a null string for invalid UTF-8 sequence.
&gt; You should check null-string after caling String::fromUTF8.
&gt; 
&gt;   result = String::fromUTF8(buffer.data(), size);

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610005</commentid>
    <comment_count>8</comment_count>
      <attachid>388524</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-01-23 01:02:11 -0800</bug_when>
    <thetext>Comment on attachment 388524
Patch

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

&gt; Source/WebCore/platform/generic/KeyedDecoderGeneric.cpp:61
&gt; +        result = emptyString();

I think if String::fromUTF8 is failed, a null string and false should be returned.

Of course, an empty string should be return for size == 0 case.

WDTY?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610010</commentid>
    <comment_count>9</comment_count>
      <attachid>388525</attachid>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-23 01:41:51 -0800</bug_when>
    <thetext>Created attachment 388525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610013</commentid>
    <comment_count>10</comment_count>
    <who name="Takashi Komori">takashi.komori</who>
    <bug_when>2020-01-23 01:44:31 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #8)
&gt; Comment on attachment 388524 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388524&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/generic/KeyedDecoderGeneric.cpp:61
&gt; &gt; +        result = emptyString();
&gt; 
&gt; I think if String::fromUTF8 is failed, a null string and false should be
&gt; returned.
&gt; 
&gt; Of course, an empty string should be return for size == 0 case.
&gt; 
&gt; WDTY?

I agree. Failing fromUTF8 means decoded string is collapsed.
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610031</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 02:58:21 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 388525:

editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610032</commentid>
    <comment_count>12</comment_count>
      <attachid>388525</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 02:58:53 -0800</bug_when>
    <thetext>Comment on attachment 388525
Patch

Clearing flags on attachment: 388525

Committed r254971: &lt;https://trac.webkit.org/changeset/254971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610033</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 02:58:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610034</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-23 02:59:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/58829480&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388399</attachid>
            <date>2020-01-21 23:46:26 -0800</date>
            <delta_ts>2020-01-23 00:57:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206572-20200122164315.patch</filename>
            <type>text/plain</type>
            <size>3161</size>
            <attacher name="Takashi Komori">takashi.komori</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uNTc4MjlkZTY5ZmY4ZmNmNDhmNGEzZDI5NWVhNjUy
OTIzZmJmOTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAxLTIxICBUYWth
c2hpIEtvbW9yaSAgPFRha2FzaGkuS29tb3JpQHNvbnkuY29tPgorCisgICAgICAgIEtleWVkRGVj
b2RlckdlbmVyaWMgY3Jhc2hlcyB3aGVuIGl0IGFjY2Vzc2VzIGEgZGF0YSB3aXRoIGVtcHR5IHN0
cmluZyBrZXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY1NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2VkIG51bGwgc3RyaW5nIHdoaWNoIHdhcyB1c2VkIGZvciBIYXNNYXAga2V5IHRvIGVt
cHR5IHN0cmluZy4KKworICAgICAgICBUZXN0OiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
S2V5ZWRDb2RpbmcuY3BwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL0tleWVkRGVjb2Rl
ckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVhZFN0cmluZyk6CisKIDIwMjAtMDEt
MjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFWElGIG9yaWVudGF0aW9uIGlzIGlnbm9yZWQgZm9yIHNvbWUgQ1NTIGltYWdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9LZXllZERlY29kZXJHZW5lcmlj
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvS2V5ZWREZWNvZGVyR2VuZXJp
Yy5jcHAKaW5kZXggYmM1N2NiN2U3YjkwNmQ2Yzg0ZWZjYTA5Nzc1ZDA3YWRjZGNmM2MyMi4uNGE5
M2Y2OTI0ZjEwZGVlNzg5Yzc0MWQ1NWRlMWQ0N2M5MDRhMWMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9LZXllZERlY29kZXJHZW5lcmljLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL0tleWVkRGVjb2RlckdlbmVyaWMuY3BwCkBA
IC01Myw2ICs1MywxMCBAQCBzdGF0aWMgYm9vbCByZWFkU3RyaW5nKFdURjo6UGVyc2lzdGVuY2U6
OkRlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KQogICAgIHNpemVfdCBzaXplOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIXNpemUpIHsKKyAgICAgICAgcmVzdWx0ID0gZW1wdHlTdHJpbmcoKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXIoc2l6ZSk7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShidWZmZXIuZGF0YSgpLCBzaXplKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDBiMzZkZmE1NGQwNzgyOThkMmMzNTIwYmM5YTY1N2IyZTI4NmFm
OTkuLjRiOTQ0YjRkNDYxMWE1OGZlYzc1ZTU1ODQ5ZGNhZDRiZDI5NDdiZTkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wMS0yMSAgVGFrYXNoaSBLb21vcmkgIDxUYWthc2hpLktvbW9yaUBzb255LmNvbT4KKwor
ICAgICAgICBLZXllZERlY29kZXJHZW5lcmljIGNyYXNoZXMgd2hlbiBpdCBhY2Nlc3NlcyBhIGRh
dGEgd2l0aCBlbXB0eSBzdHJpbmcga2V5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2Rp
bmcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDEtMjAgIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjU0
Nzg4KTogbW96aWxsYS10ZXN0cy55YW1sL2pzMV81L1JlZ3Jlc3MvcmVncmVzcy0xOTE2MzMuanMu
bW96aWxsYSBmYWlscwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9L
ZXllZENvZGluZy5jcHAKaW5kZXggMmNkNGMzNDRiNGMzYTcxMjViOTMyNjg0MGFkN2MwY2M3YmUy
N2Q2Yi4uOGM5OTg2MmY5Zjg4NjYwYjI3MmNjYjU1ZjM4NGMyN2I0YmRhNzEzYyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVkQ29kaW5nLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCkBAIC0y
NzUsNCArMjc1LDE5IEBAIFRFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldE9iamVjdHMpCiAgICAg
RVhQRUNUX1RSVUUoc3VjY2Vzcyk7CiAgICAgRVhQRUNUX0VRKHVzZXJzLCBkZWNvZGVkVXNlcnMp
OwogfQorCitURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRHZXRXaXRoRW1wdHlLZXkpCit7CisgICAg
YXV0byBlbmNvZGVyID0gV2ViQ29yZTo6S2V5ZWRFbmNvZGVyOjplbmNvZGVyKCk7CisgICAgZW5j
b2Rlci0+ZW5jb2RlQm9vbCgiIiwgZmFsc2UpOworCisgICAgYXV0byBlbmNvZGVkQnVmZmVyID0g
ZW5jb2Rlci0+ZmluaXNoRW5jb2RpbmcoKTsKKyAgICBhdXRvIGRlY29kZXIgPSBXZWJDb3JlOjpL
ZXllZERlY29kZXI6OmRlY29kZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZW5j
b2RlZEJ1ZmZlci0+ZGF0YSgpKSwgZW5jb2RlZEJ1ZmZlci0+c2l6ZSgpKTsKKworICAgIGJvb2wg
c3VjY2VzcywgYm9vbFZhbHVlOworICAgIHN1Y2Nlc3MgPSBkZWNvZGVyLT5kZWNvZGVCb29sKCIi
LCBib29sVmFsdWUpOworCisgICAgRVhQRUNUX1RSVUUoc3VjY2Vzcyk7CisgICAgRVhQRUNUX0VR
KGZhbHNlLCBib29sVmFsdWUpOworfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388524</attachid>
            <date>2020-01-23 00:57:41 -0800</date>
            <delta_ts>2020-01-23 01:41:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206572-20200123175432.patch</filename>
            <type>text/plain</type>
            <size>3109</size>
            <attacher name="Takashi Komori">takashi.komori</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uZjFiOGUwMjkzM2RjYzlhYjk5ZjNlNzRlMGE3MGIy
YTNkNDBjYmQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAxLTIzICBUYWth
c2hpIEtvbW9yaSAgPFRha2FzaGkuS29tb3JpQHNvbnkuY29tPgorCisgICAgICAgIEtleWVkRGVj
b2RlckdlbmVyaWMgY3Jhc2hlcyB3aGVuIGl0IGFjY2Vzc2VzIGEgZGF0YSB3aXRoIGVtcHR5IHN0
cmluZyBrZXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY1NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2VkIG51bGwgc3RyaW5nIHdoaWNoIHdhcyB1c2VkIGZvciBIYXNNYXAga2V5IHRvIGVt
cHR5IHN0cmluZy4KKworICAgICAgICBUZXN0OiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
S2V5ZWRDb2RpbmcuY3BwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL0tleWVkRGVjb2Rl
ckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVhZFN0cmluZyk6CisKIDIwMjAtMDEt
MjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFWElGIG9yaWVudGF0aW9uIGlzIGlnbm9yZWQgZm9yIHNvbWUgQ1NTIGltYWdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9LZXllZERlY29kZXJHZW5lcmlj
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvS2V5ZWREZWNvZGVyR2VuZXJp
Yy5jcHAKaW5kZXggYmM1N2NiN2U3YjkwNmQ2Yzg0ZWZjYTA5Nzc1ZDA3YWRjZGNmM2MyMi4uNWY4
ZmExYWRlMjZjM2QxYTRlMjNmYzc1MWJmYTIzOGMzNDJhZGQyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9LZXllZERlY29kZXJHZW5lcmljLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL0tleWVkRGVjb2RlckdlbmVyaWMuY3BwCkBA
IC01Nyw2ICs1Nyw5IEBAIHN0YXRpYyBib29sIHJlYWRTdHJpbmcoV1RGOjpQZXJzaXN0ZW5jZTo6
RGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZUZpeGVkTGVuZ3RoRGF0YShidWZmZXIuZGF0YSgpLCBzaXplKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVURjgoYnVmZmVyLmRhdGEoKSwgc2l6ZSk7
CisgICAgaWYgKHJlc3VsdC5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gZW1wdHlTdHJpbmco
KTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGIzNmRmYTU0ZDA3ODI5OGQyYzM1MjBiYzlhNjU3YjJl
Mjg2YWY5OS4uYTc3MGRkODdiZTIxNWVkMDZiYTA3YWQ2YzE2ZDAzYzlkYmFhZDk2OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIwLTAxLTIzICBUYWthc2hpIEtvbW9yaSAgPFRha2FzaGkuS29tb3JpQHNvbnkuY29t
PgorCisgICAgICAgIEtleWVkRGVjb2RlckdlbmVyaWMgY3Jhc2hlcyB3aGVuIGl0IGFjY2Vzc2Vz
IGEgZGF0YSB3aXRoIGVtcHR5IHN0cmluZyBrZXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY1NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXll
ZENvZGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wMS0y
MCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNTQ3ODgpOiBtb3ppbGxhLXRlc3RzLnlhbWwvanMxXzUvUmVncmVzcy9yZWdyZXNzLTE5MTYz
My5qcy5tb3ppbGxhIGZhaWxzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0tleWVkQ29kaW5nLmNwcAppbmRleCAyY2Q0YzM0NGI0YzNhNzEyNWI5MzI2ODQwYWQ3YzBj
YzdiZTI3ZDZiLi44Yzk5ODYyZjlmODg2NjBiMjcyY2NiNTVmMzg0YzI3YjRiZGE3MTNjIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAK
QEAgLTI3NSw0ICsyNzUsMTkgQEAgVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0T2JqZWN0cykK
ICAgICBFWFBFQ1RfVFJVRShzdWNjZXNzKTsKICAgICBFWFBFQ1RfRVEodXNlcnMsIGRlY29kZWRV
c2Vycyk7CiB9CisKK1RFU1QoS2V5ZWRDb2RpbmcsIFNldEFuZEdldFdpdGhFbXB0eUtleSkKK3sK
KyAgICBhdXRvIGVuY29kZXIgPSBXZWJDb3JlOjpLZXllZEVuY29kZXI6OmVuY29kZXIoKTsKKyAg
ICBlbmNvZGVyLT5lbmNvZGVCb29sKCIiLCBmYWxzZSk7CisKKyAgICBhdXRvIGVuY29kZWRCdWZm
ZXIgPSBlbmNvZGVyLT5maW5pc2hFbmNvZGluZygpOworICAgIGF1dG8gZGVjb2RlciA9IFdlYkNv
cmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlcihyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihlbmNvZGVkQnVmZmVyLT5kYXRhKCkpLCBlbmNvZGVkQnVmZmVyLT5zaXplKCkpOworCisgICAg
Ym9vbCBzdWNjZXNzLCBib29sVmFsdWU7CisgICAgc3VjY2VzcyA9IGRlY29kZXItPmRlY29kZUJv
b2woIiIsIGJvb2xWYWx1ZSk7CisKKyAgICBFWFBFQ1RfVFJVRShzdWNjZXNzKTsKKyAgICBFWFBF
Q1RfRVEoZmFsc2UsIGJvb2xWYWx1ZSk7Cit9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388525</attachid>
            <date>2020-01-23 01:41:51 -0800</date>
            <delta_ts>2020-01-23 02:58:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206572-20200123183841.patch</filename>
            <type>text/plain</type>
            <size>3291</size>
            <attacher name="Takashi Komori">takashi.komori</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uZjFiOGUwMjkzM2RjYzlhYjk5ZjNlNzRlMGE3MGIy
YTNkNDBjYmQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAxLTIzICBUYWth
c2hpIEtvbW9yaSAgPFRha2FzaGkuS29tb3JpQHNvbnkuY29tPgorCisgICAgICAgIEtleWVkRGVj
b2RlckdlbmVyaWMgY3Jhc2hlcyB3aGVuIGl0IGFjY2Vzc2VzIGEgZGF0YSB3aXRoIGVtcHR5IHN0
cmluZyBrZXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY1NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2VkIG51bGwgc3RyaW5nIHdoaWNoIHdhcyB1c2VkIGZvciBIYXNNYXAga2V5IHRvIGVt
cHR5IHN0cmluZy4KKworICAgICAgICBUZXN0OiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
S2V5ZWRDb2RpbmcuY3BwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nZW5lcmljL0tleWVkRGVjb2Rl
ckdlbmVyaWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVhZFN0cmluZyk6CisKIDIwMjAtMDEt
MjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFWElGIG9yaWVudGF0aW9uIGlzIGlnbm9yZWQgZm9yIHNvbWUgQ1NTIGltYWdlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9LZXllZERlY29kZXJHZW5lcmlj
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dlbmVyaWMvS2V5ZWREZWNvZGVyR2VuZXJp
Yy5jcHAKaW5kZXggYmM1N2NiN2U3YjkwNmQ2Yzg0ZWZjYTA5Nzc1ZDA3YWRjZGNmM2MyMi4uYzNl
MTZlZGVlZDJmZWQ3MGU4MjUwYjQwMjI0NDEyZWVhYTI0ZDc3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2VuZXJpYy9LZXllZERlY29kZXJHZW5lcmljLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nZW5lcmljL0tleWVkRGVjb2RlckdlbmVyaWMuY3BwCkBA
IC01MywxMCArNTMsMTggQEAgc3RhdGljIGJvb2wgcmVhZFN0cmluZyhXVEY6OlBlcnNpc3RlbmNl
OjpEZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkKICAgICBzaXplX3Qgc2l6ZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFzaXplKSB7CisgICAgICAgIHJlc3VsdCA9IGVtcHR5U3RyaW5nKCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKwogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXIoc2l6ZSk7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUZpeGVkTGVuZ3RoRGF0YShidWZmZXIuZGF0YSgpLCBzaXpl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdCA9IFN0cmluZzo6ZnJvbVVURjgo
YnVmZmVyLmRhdGEoKSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwYjM2ZGZhNTRkMDc4Mjk4ZDJjMzUy
MGJjOWE2NTdiMmUyODZhZjk5Li5hNzcwZGQ4N2JlMjE1ZWQwNmJhMDdhZDZjMTZkMDNjOWRiYWFk
OTY4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMDEtMjMgIFRha2FzaGkgS29tb3JpICA8VGFrYXNoaS5Lb21v
cmlAc29ueS5jb20+CisKKyAgICAgICAgS2V5ZWREZWNvZGVyR2VuZXJpYyBjcmFzaGVzIHdoZW4g
aXQgYWNjZXNzZXMgYSBkYXRhIHdpdGggZW1wdHkgc3RyaW5nIGtleS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU3MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0tleWVkQ29kaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CiAyMDIwLTAxLTIwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjI1NDc4OCk6IG1vemlsbGEtdGVzdHMueWFtbC9qczFfNS9SZWdyZXNzL3Jl
Z3Jlc3MtMTkxNjMzLmpzLm1vemlsbGEgZmFpbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9LZXllZENvZGluZy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvS2V5ZWRDb2RpbmcuY3BwCmluZGV4IDJjZDRjMzQ0YjRjM2E3MTI1Yjkz
MjY4NDBhZDdjMGNjN2JlMjdkNmIuLjhjOTk4NjJmOWY4ODY2MGIyNzJjY2I1NWYzODRjMjdiNGJk
YTcxM2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9LZXll
ZENvZGluZy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0tleWVk
Q29kaW5nLmNwcApAQCAtMjc1LDQgKzI3NSwxOSBAQCBURVNUKEtleWVkQ29kaW5nLCBTZXRBbmRH
ZXRPYmplY3RzKQogICAgIEVYUEVDVF9UUlVFKHN1Y2Nlc3MpOwogICAgIEVYUEVDVF9FUSh1c2Vy
cywgZGVjb2RlZFVzZXJzKTsKIH0KKworVEVTVChLZXllZENvZGluZywgU2V0QW5kR2V0V2l0aEVt
cHR5S2V5KQoreworICAgIGF1dG8gZW5jb2RlciA9IFdlYkNvcmU6OktleWVkRW5jb2Rlcjo6ZW5j
b2RlcigpOworICAgIGVuY29kZXItPmVuY29kZUJvb2woIiIsIGZhbHNlKTsKKworICAgIGF1dG8g
ZW5jb2RlZEJ1ZmZlciA9IGVuY29kZXItPmZpbmlzaEVuY29kaW5nKCk7CisgICAgYXV0byBkZWNv
ZGVyID0gV2ViQ29yZTo6S2V5ZWREZWNvZGVyOjpkZWNvZGVyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgdWludDhfdCo+KGVuY29kZWRCdWZmZXItPmRhdGEoKSksIGVuY29kZWRCdWZmZXItPnNpemUo
KSk7CisKKyAgICBib29sIHN1Y2Nlc3MsIGJvb2xWYWx1ZTsKKyAgICBzdWNjZXNzID0gZGVjb2Rl
ci0+ZGVjb2RlQm9vbCgiIiwgYm9vbFZhbHVlKTsKKworICAgIEVYUEVDVF9UUlVFKHN1Y2Nlc3Mp
OworICAgIEVYUEVDVF9FUShmYWxzZSwgYm9vbFZhbHVlKTsKK30KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>