<?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>197399</bug_id>
          
          <creation_ts>2019-04-29 18:02:20 -0700</creation_ts>
          <short_desc>Protect against null crash in fetchDiskCacheEntries</short_desc>
          <delta_ts>2019-05-01 14:19: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>InRadar</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>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1531395</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-29 18:02:20 -0700</bug_when>
    <thetext>Protect against null crash in fetchDiskCacheEntries</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531404</commentid>
    <comment_count>1</comment_count>
      <attachid>368530</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-29 19:12:32 -0700</bug_when>
    <thetext>Created attachment 368530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531405</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-29 19:12:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/47759337&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531406</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-29 19:14:28 -0700</bug_when>
    <thetext>Attachment 368530 did not pass style-queue:


ERROR: Source/WebKit/NetworkProcess/NetworkProcess.cpp:1275:  Missing space before ( in switch(  [whitespace/parens] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531424</commentid>
    <comment_count>4</comment_count>
      <attachid>368537</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-29 21:22:17 -0700</bug_when>
    <thetext>Created attachment 368537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531706</commentid>
    <comment_count>5</comment_count>
      <attachid>368537</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-04-30 14:26:13 -0700</bug_when>
    <thetext>Comment on attachment 368537
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1277
&gt; +            case NetworkCache::Cache::TraversalResult::DecodeError:
&gt; +                ASSERT_NOT_REACHED();

This shouldn&apos;t assert. The design is to handle serialization format changes (and corruption for any reason) silently.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1461
&gt; +            ASSERT_NOT_REACHED();

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531709</commentid>
    <comment_count>6</comment_count>
      <attachid>368537</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-04-30 14:29:02 -0700</bug_when>
    <thetext>Comment on attachment 368537
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:124
&gt; -    void traverse(Function&lt;void(const TraversalEntry*)&gt;&amp;&amp;);
&gt; +    enum class TraversalResult : bool { FinishedTraversing, DecodeError };
&gt; +    void traverse(Function&lt;void(Expected&lt;std::reference_wrapper&lt;const TraversalEntry&gt;, TraversalResult&gt;&amp;&amp;)&gt;&amp;&amp;);

How about simply having a separate &apos;finished&apos; bit ? All this seems bit too much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531799</commentid>
    <comment_count>7</comment_count>
      <attachid>368537</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-30 17:28:53 -0700</bug_when>
    <thetext>Comment on attachment 368537
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1277
&gt;&gt; +                ASSERT_NOT_REACHED();
&gt; 
&gt; This shouldn&apos;t assert. The design is to handle serialization format changes (and corruption for any reason) silently.

Ok.

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.h:124
&gt;&gt; +    void traverse(Function&lt;void(Expected&lt;std::reference_wrapper&lt;const TraversalEntry&gt;, TraversalResult&gt;&amp;&amp;)&gt;&amp;&amp;);
&gt; 
&gt; How about simply having a separate &apos;finished&apos; bit ? All this seems bit too much.

That would make it so the function signature expresses that there is a state where the TraversalEntry could be non null and finished could be true, which is not the case.  This way expresses that we either have a valid TraversalEntry or one of two other states.  I think this is better unless you feel strongly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531870</commentid>
    <comment_count>8</comment_count>
      <attachid>368537</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-01 00:28:07 -0700</bug_when>
    <thetext>Comment on attachment 368537
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:484
&gt;          if (!entry) {
&gt; -            traverseHandler(nullptr);
&gt; +            traverseHandler(makeUnexpected(TraversalResult::DecodeError));
&gt;              return;
&gt;          }

Actually, can&apos;t we simply remove the traverseHandler() call here? There is nothing useful a client can do there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532057</commentid>
    <comment_count>9</comment_count>
      <attachid>368537</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-01 14:03:43 -0700</bug_when>
    <thetext>Comment on attachment 368537
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:484
&gt;&gt;          }
&gt; 
&gt; Actually, can&apos;t we simply remove the traverseHandler() call here? There is nothing useful a client can do there.

Wow, that&apos;s so elegant.  That makes this whole patch a 1 line change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532062</commentid>
    <comment_count>10</comment_count>
      <attachid>368707</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-01 14:11:04 -0700</bug_when>
    <thetext>Created attachment 368707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532066</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-01 14:19:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/r244850</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368530</attachid>
            <date>2019-04-29 19:12:32 -0700</date>
            <delta_ts>2019-04-29 21:22:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197399-20190429191232.patch</filename>
            <type>text/plain</type>
            <size>7683</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQ3NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA0LTI5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdGVjdCBhZ2Fp
bnN0IG51bGwgY3Jhc2ggaW4gZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTczOTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQ3NzU5MzM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElmIHRoZSBjYWxsIHRvIEVudHJ5OjpkZWNvZGVTdG9yYWdlUmVjb3JkIHJldHVy
bnMgbnVsbHB0ciB3aGVuIENhY2hlOjp0cmF2ZXJzZSdzIGNhbGwgdG8gU3RvcmFnZTo6dHJhdmVy
c2UgaGFzIG5vdCByZWNlaXZlZAorICAgICAgICBpdHMgZmluYWwgY2FsbGJhY2ssIGl0IHdpbGwg
Y2FsbCB0aGUgRnVuY3Rpb24gZnJvbSBmZXRjaERpc2tDYWNoZUVudHJpZXMgd2l0aCBudWxscHRy
IHR3aWNlLiAgVGhhdCBGdW5jdGlvbiBhc3N1bWVzIHRoYXQgYQorICAgICAgICBjYWxsIHdpdGgg
bnVsbHB0ciBpbmRpY2F0ZXMgdGhhdCBpdCBoYXMgY29tcGxldGVkIHRyYXZlcnNhbCwgc28gaXQg
Y2FsbHMgaXRzIENvbXBsZXRpb25IYW5kbGVyLiAgSWYgd2UgZ2V0IGEgY2FsbCBpbmRpY2F0aW5n
CisgICAgICAgIHRoYXQgZGVjb2RpbmcgaGFzIGZhaWxlZCwgZG9uJ3QgY2FsbCB0aGUgQ29tcGxl
dGlvbkhhbmRsZXIuICBXYWl0IHVudGlsIHdlIGFyZSBkb25lIHRyYXZlcnNpbmcuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmZldGNoRGlza0NhY2hlRW50cmllcyk6CisKIDIwMTktMDQtMjkgIFRydWl0dCBTYXZlbGwgIDx0
c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ0
NzU1LgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAJKHJldmlzaW9uIDI0NDc2MSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjY5LDI1ICsxMjY5LDI5
IEBAIHN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhOZXR3b3IKICAgICB9CiAgICAg
CiAgICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIHVpbnQ2NF90PiBvcmlnaW5zQW5kU2l6
ZXM7Ci0gICAgY2FjaGUtPnRyYXZlcnNlKFtmZXRjaE9wdGlvbnMsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG9yaWdpbnNBbmRTaXplcyA9IFdURk1vdmUo
b3JpZ2luc0FuZFNpemVzKV0oYXV0byogdHJhdmVyc2FsRW50cnkpIG11dGFibGUgewotICAgICAg
ICBpZiAoIXRyYXZlcnNhbEVudHJ5KSB7CisgICAgY2FjaGUtPnRyYXZlcnNlKFtmZXRjaE9wdGlv
bnMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG9yaWdp
bnNBbmRTaXplcyA9IFdURk1vdmUob3JpZ2luc0FuZFNpemVzKV0oYXV0byB0cmF2ZXJzYWxFbnRy
eSkgbXV0YWJsZSB7CisgICAgICAgIGlmICghdHJhdmVyc2FsRW50cnkuaGFzX3ZhbHVlKCkpIHsK
ICAgICAgICAgICAgIFZlY3RvcjxXZWJzaXRlRGF0YTo6RW50cnk+IGVudHJpZXM7Ci0KLSAgICAg
ICAgICAgIGZvciAoYXV0byYgb3JpZ2luQW5kU2l6ZSA6IG9yaWdpbnNBbmRTaXplcykKLSAgICAg
ICAgICAgICAgICBlbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBvcmlnaW5BbmRT
aXplLmtleSwgV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUsIG9yaWdpbkFuZFNpemUudmFsdWUg
fSk7Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZW50cmllcyA9IFdURk1vdmUoZW50
cmllcyldICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGVu
dHJpZXMpOwotICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIHN3aXRjaCh0cmF2ZXJzYWxF
bnRyeS5lcnJvcigpKSB7CisgICAgICAgICAgICBjYXNlIE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlRy
YXZlcnNhbFJlc3VsdDo6RGVjb2RlRXJyb3I6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIE5ldHdvcmtDYWNoZTo6Q2FjaGU6OlRyYXZlcnNhbFJlc3VsdDo6RmluaXNo
ZWRUcmF2ZXJzaW5nOiB7CisgICAgICAgICAgICAgICAgZW50cmllcy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KG9yaWdpbnNBbmRTaXplcy5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAoYXV0
byYgb3JpZ2luQW5kU2l6ZSA6IG9yaWdpbnNBbmRTaXplcykKKyAgICAgICAgICAgICAgICAgICAg
ZW50cmllcy51bmNoZWNrZWRBcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5IHsgb3JpZ2luQW5kU2l6
ZS5rZXksIFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlLCBvcmlnaW5BbmRTaXplLnZhbHVlIH0p
OworICAgICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZW50cmllcyA9IFdURk1vdmUoZW50
cmllcyldICgpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihlbnRyaWVzKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gdXJs
ID0gdHJhdmVyc2FsRW50cnktPmVudHJ5LnJlc3BvbnNlKCkudXJsKCk7Ci0gICAgICAgIGF1dG8g
cmVzdWx0ID0gb3JpZ2luc0FuZFNpemVzLmFkZCh7dXJsLnByb3RvY29sKCkudG9TdHJpbmcoKSwg
dXJsLmhvc3QoKS50b1N0cmluZygpLCB1cmwucG9ydCgpfSwgMCk7CisgICAgICAgIGF1dG8gdXJs
ID0gdHJhdmVyc2FsRW50cnktPmdldCgpLmVudHJ5LnJlc3BvbnNlKCkudXJsKCk7CisgICAgICAg
IGF1dG8gcmVzdWx0ID0gb3JpZ2luc0FuZFNpemVzLmFkZCh7IHVybC5wcm90b2NvbCgpLnRvU3Ry
aW5nKCksIHVybC5ob3N0KCkudG9TdHJpbmcoKSwgdXJsLnBvcnQoKSB9LCAwKTsKIAogICAgICAg
ICBpZiAoZmV0Y2hPcHRpb25zLmNvbnRhaW5zKFdlYnNpdGVEYXRhRmV0Y2hPcHRpb246OkNvbXB1
dGVTaXplcykpCi0gICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlICs9IHRyYXZlcnNh
bEVudHJ5LT5lbnRyeS5zb3VyY2VTdG9yYWdlUmVjb3JkKCkuaGVhZGVyLnNpemUoKSArIHRyYXZl
cnNhbEVudHJ5LT5yZWNvcmRJbmZvLmJvZHlTaXplOworICAgICAgICAgICAgcmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZSArPSB0cmF2ZXJzYWxFbnRyeS0+Z2V0KCkuZW50cnkuc291cmNlU3RvcmFnZVJl
Y29yZCgpLmhlYWRlci5zaXplKCkgKyB0cmF2ZXJzYWxFbnRyeS0+Z2V0KCkucmVjb3JkSW5mby5i
b2R5U2l6ZTsKICAgICB9KTsKIH0KIApAQCAtMTQ0NCwxMCArMTQ0OCwxMCBAQCBzdGF0aWMgdm9p
ZCBjbGVhckRpc2tDYWNoZUVudHJpZXMoTmV0d29yCiAgICAgICAgIG9yaWdpbnNUb0RlbGV0ZS5h
ZGQob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpOwogCiAgICAgVmVjdG9yPE5ldHdvcmtDYWNoZTo6
S2V5PiBjYWNoZUtleXNUb0RlbGV0ZTsKLSAgICBjYWNoZS0+dHJhdmVyc2UoW2NhY2hlLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBvcmlnaW5zVG9EZWxl
dGUgPSBXVEZNb3ZlKG9yaWdpbnNUb0RlbGV0ZSksIGNhY2hlS2V5c1RvRGVsZXRlID0gV1RGTW92
ZShjYWNoZUtleXNUb0RlbGV0ZSldKGF1dG8qIHRyYXZlcnNhbEVudHJ5KSBtdXRhYmxlIHsKLSAg
ICAgICAgaWYgKHRyYXZlcnNhbEVudHJ5KSB7Ci0gICAgICAgICAgICBpZiAob3JpZ2luc1RvRGVs
ZXRlLmNvbnRhaW5zKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodHJhdmVyc2FsRW50cnktPmVudHJ5
LnJlc3BvbnNlKCkudXJsKCkpKSkKLSAgICAgICAgICAgICAgICBjYWNoZUtleXNUb0RlbGV0ZS5h
cHBlbmQodHJhdmVyc2FsRW50cnktPmVudHJ5LmtleSgpKTsKKyAgICBjYWNoZS0+dHJhdmVyc2Uo
W2NhY2hlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBv
cmlnaW5zVG9EZWxldGUgPSBXVEZNb3ZlKG9yaWdpbnNUb0RlbGV0ZSksIGNhY2hlS2V5c1RvRGVs
ZXRlID0gV1RGTW92ZShjYWNoZUtleXNUb0RlbGV0ZSldKGF1dG8gdHJhdmVyc2FsRW50cnkpIG11
dGFibGUgeworICAgICAgICBpZiAodHJhdmVyc2FsRW50cnkuaGFzX3ZhbHVlKCkpIHsKKyAgICAg
ICAgICAgIGlmIChvcmlnaW5zVG9EZWxldGUuY29udGFpbnMoU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZSh0cmF2ZXJzYWxFbnRyeS0+Z2V0KCkuZW50cnkucmVzcG9uc2UoKS51cmwoKSkpKQorICAgICAg
ICAgICAgICAgIGNhY2hlS2V5c1RvRGVsZXRlLmFwcGVuZCh0cmF2ZXJzYWxFbnRyeS0+Z2V0KCku
ZW50cnkua2V5KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAJKHJldmlzaW9uIDI0NDc1OSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU1LDcgKzQ1NSw3IEBAIHZv
aWQgQ2FjaGU6OnJlbW92ZShjb25zdCBWZWN0b3I8S2V5PiYga2UKICAgICBtX3N0b3JhZ2UtPnJl
bW92ZShrZXlzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgQ2FjaGU6
OnRyYXZlcnNlKEZ1bmN0aW9uPHZvaWQoY29uc3QgVHJhdmVyc2FsRW50cnkqKT4mJiB0cmF2ZXJz
ZUhhbmRsZXIpCit2b2lkIENhY2hlOjp0cmF2ZXJzZShGdW5jdGlvbjx2b2lkKEV4cGVjdGVkPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVHJhdmVyc2FsRW50cnk+LCBUcmF2ZXJzYWxSZXN1
bHQ+JiYpPiYmIHRyYXZlcnNlSGFuZGxlcikKIHsKICAgICAvLyBQcm90ZWN0IGFnYWluc3QgY2xp
ZW50cyBtYWtpbmcgZXhjZXNzaXZlIHRyYXZlcnNhbCByZXF1ZXN0cy4KICAgICBjb25zdCB1bnNp
Z25lZCBtYXhpbXVtVHJhdmVyc2VDb3VudCA9IDM7CkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBD
YWNoZTo6dHJhdmVyc2UoRnVuY3Rpb248dm9pZChjb25zdAogICAgICAgICBXVEZMb2dBbHdheXMo
Ik1heGltdW0gcGFyYWxsZWwgY2FjaGUgdHJhdmVyc2UgY291bnQgZXhjZWVkZWQuIElnbm9yaW5n
IHRyYXZlcnNhbCByZXF1ZXN0LiIpOwogCiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbdHJhdmVyc2VIYW5kbGVyID0gV1RGTW92ZSh0cmF2ZXJzZUhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIHRyYXZlcnNlSGFuZGxlcihudWxscHRyKTsKKyAgICAgICAgICAgIHRy
YXZlcnNlSGFuZGxlcihtYWtlVW5leHBlY3RlZChUcmF2ZXJzYWxSZXN1bHQ6OkZpbmlzaGVkVHJh
dmVyc2luZykpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3Mywx
OCArNDczLDE4IEBAIHZvaWQgQ2FjaGU6OnRyYXZlcnNlKEZ1bmN0aW9uPHZvaWQoY29uc3QKICAg
ICBtX3N0b3JhZ2UtPnRyYXZlcnNlKHJlc291cmNlVHlwZSgpLCB7IH0sIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRyYXZlcnNlSGFuZGxlciA9IFdURk1vdmUodHJhdmVy
c2VIYW5kbGVyKV0gKGNvbnN0IFN0b3JhZ2U6OlJlY29yZCogcmVjb3JkLCBjb25zdCBTdG9yYWdl
OjpSZWNvcmRJbmZvJiByZWNvcmRJbmZvKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZWNvcmQp
IHsKICAgICAgICAgICAgIC0tbV90cmF2ZXJzZUNvdW50OwotICAgICAgICAgICAgdHJhdmVyc2VI
YW5kbGVyKG51bGxwdHIpOworICAgICAgICAgICAgdHJhdmVyc2VIYW5kbGVyKG1ha2VVbmV4cGVj
dGVkKFRyYXZlcnNhbFJlc3VsdDo6RmluaXNoZWRUcmF2ZXJzaW5nKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGVudHJ5ID0gRW50cnk6OmRlY29kZVN0
b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAgICAgIGlmICghZW50cnkpIHsKLSAgICAgICAgICAg
IHRyYXZlcnNlSGFuZGxlcihudWxscHRyKTsKKyAgICAgICAgICAgIHRyYXZlcnNlSGFuZGxlciht
YWtlVW5leHBlY3RlZChUcmF2ZXJzYWxSZXN1bHQ6OkRlY29kZUVycm9yKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBUcmF2ZXJzYWxFbnRyeSB0cmF2ZXJzYWxF
bnRyeSB7ICplbnRyeSwgcmVjb3JkSW5mbyB9OwotICAgICAgICB0cmF2ZXJzZUhhbmRsZXIoJnRy
YXZlcnNhbEVudHJ5KTsKKyAgICAgICAgdHJhdmVyc2VIYW5kbGVyKHsgdHJhdmVyc2FsRW50cnkg
fSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAkocmV2aXNpb24gMjQ0NzU5KQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTIwLDcgKzEyMCw4IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgRW50cnkmIGVudHJ5Owog
ICAgICAgICBjb25zdCBTdG9yYWdlOjpSZWNvcmRJbmZvJiByZWNvcmRJbmZvOwogICAgIH07Ci0g
ICAgdm9pZCB0cmF2ZXJzZShGdW5jdGlvbjx2b2lkKGNvbnN0IFRyYXZlcnNhbEVudHJ5Kik+JiYp
OworICAgIGVudW0gY2xhc3MgVHJhdmVyc2FsUmVzdWx0IDogYm9vbCB7IEZpbmlzaGVkVHJhdmVy
c2luZywgRGVjb2RlRXJyb3IgfTsKKyAgICB2b2lkIHRyYXZlcnNlKEZ1bmN0aW9uPHZvaWQoRXhw
ZWN0ZWQ8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBUcmF2ZXJzYWxFbnRyeT4sIFRyYXZl
cnNhbFJlc3VsdD4mJik+JiYpOwogICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEtleSYpOwogICAgIHZv
aWQgcmVtb3ZlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgcmVt
b3ZlKGNvbnN0IFZlY3RvcjxLZXk+JiwgRnVuY3Rpb248dm9pZCgpPiYmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368537</attachid>
            <date>2019-04-29 21:22:17 -0700</date>
            <delta_ts>2019-05-01 14:11:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197399-20190429212216.patch</filename>
            <type>text/plain</type>
            <size>8166</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQ3NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA0LTI5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdGVjdCBhZ2Fp
bnN0IG51bGwgY3Jhc2ggaW4gZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTczOTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQ3NzU5MzM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIElmIHRoZSBjYWxsIHRvIEVudHJ5OjpkZWNvZGVTdG9yYWdlUmVjb3JkIHJldHVy
bnMgbnVsbHB0ciB3aGVuIENhY2hlOjp0cmF2ZXJzZSdzIGNhbGwgdG8gU3RvcmFnZTo6dHJhdmVy
c2UgaGFzIG5vdCByZWNlaXZlZAorICAgICAgICBpdHMgZmluYWwgY2FsbGJhY2ssIGl0IHdpbGwg
Y2FsbCB0aGUgRnVuY3Rpb24gZnJvbSBmZXRjaERpc2tDYWNoZUVudHJpZXMgd2l0aCBudWxscHRy
IHR3aWNlLiAgVGhhdCBGdW5jdGlvbiBhc3N1bWVzIHRoYXQgYQorICAgICAgICBjYWxsIHdpdGgg
bnVsbHB0ciBpbmRpY2F0ZXMgdGhhdCBpdCBoYXMgY29tcGxldGVkIHRyYXZlcnNhbCwgc28gaXQg
Y2FsbHMgaXRzIENvbXBsZXRpb25IYW5kbGVyLiAgSWYgd2UgZ2V0IGEgY2FsbCBpbmRpY2F0aW5n
CisgICAgICAgIHRoYXQgZGVjb2RpbmcgaGFzIGZhaWxlZCwgZG9uJ3QgY2FsbCB0aGUgQ29tcGxl
dGlvbkhhbmRsZXIuICBXYWl0IHVudGlsIHdlIGFyZSBkb25lIHRyYXZlcnNpbmcuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OmZldGNoRGlza0NhY2hlRW50cmllcyk6CisKIDIwMTktMDQtMjkgIFRydWl0dCBTYXZlbGwgIDx0
c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ0
NzU1LgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAJKHJldmlzaW9uIDI0NDc2MSkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjY5LDI1ICsxMjY5LDMw
IEBAIHN0YXRpYyB2b2lkIGZldGNoRGlza0NhY2hlRW50cmllcyhOZXR3b3IKICAgICB9CiAgICAg
CiAgICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIHVpbnQ2NF90PiBvcmlnaW5zQW5kU2l6
ZXM7Ci0gICAgY2FjaGUtPnRyYXZlcnNlKFtmZXRjaE9wdGlvbnMsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG9yaWdpbnNBbmRTaXplcyA9IFdURk1vdmUo
b3JpZ2luc0FuZFNpemVzKV0oYXV0byogdHJhdmVyc2FsRW50cnkpIG11dGFibGUgewotICAgICAg
ICBpZiAoIXRyYXZlcnNhbEVudHJ5KSB7CisgICAgY2FjaGUtPnRyYXZlcnNlKFtmZXRjaE9wdGlv
bnMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIG9yaWdp
bnNBbmRTaXplcyA9IFdURk1vdmUob3JpZ2luc0FuZFNpemVzKV0oYXV0byB0cmF2ZXJzYWxFbnRy
eSkgbXV0YWJsZSB7CisgICAgICAgIGlmICghdHJhdmVyc2FsRW50cnkuaGFzX3ZhbHVlKCkpIHsK
ICAgICAgICAgICAgIFZlY3RvcjxXZWJzaXRlRGF0YTo6RW50cnk+IGVudHJpZXM7Ci0KLSAgICAg
ICAgICAgIGZvciAoYXV0byYgb3JpZ2luQW5kU2l6ZSA6IG9yaWdpbnNBbmRTaXplcykKLSAgICAg
ICAgICAgICAgICBlbnRyaWVzLmFwcGVuZChXZWJzaXRlRGF0YTo6RW50cnkgeyBvcmlnaW5BbmRT
aXplLmtleSwgV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUsIG9yaWdpbkFuZFNpemUudmFsdWUg
fSk7Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZW50cmllcyA9IFdURk1vdmUoZW50
cmllcyldICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGVu
dHJpZXMpOwotICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAgICAgIHN3aXRjaCAodHJhdmVyc2Fs
RW50cnkuZXJyb3IoKSkgeworICAgICAgICAgICAgY2FzZSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpU
cmF2ZXJzYWxSZXN1bHQ6OkRlY29kZUVycm9yOgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBOZXR3
b3JrQ2FjaGU6OkNhY2hlOjpUcmF2ZXJzYWxSZXN1bHQ6OkZpbmlzaGVkVHJhdmVyc2luZzogewor
ICAgICAgICAgICAgICAgIGVudHJpZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShvcmlnaW5zQW5k
U2l6ZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIG9yaWdpbkFuZFNpemUg
OiBvcmlnaW5zQW5kU2l6ZXMpCisgICAgICAgICAgICAgICAgICAgIGVudHJpZXMudW5jaGVja2Vk
QXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IG9yaWdpbkFuZFNpemUua2V5LCBXZWJzaXRlRGF0
YVR5cGU6OkRpc2tDYWNoZSwgb3JpZ2luQW5kU2l6ZS52YWx1ZSB9KTsKKyAgICAgICAgICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIGVudHJpZXMgPSBXVEZNb3ZlKGVudHJpZXMpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZW50cmllcyk7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHVybCA9IHRyYXZlcnNhbEVudHJ5
LT5lbnRyeS5yZXNwb25zZSgpLnVybCgpOwotICAgICAgICBhdXRvIHJlc3VsdCA9IG9yaWdpbnNB
bmRTaXplcy5hZGQoe3VybC5wcm90b2NvbCgpLnRvU3RyaW5nKCksIHVybC5ob3N0KCkudG9TdHJp
bmcoKSwgdXJsLnBvcnQoKX0sIDApOworICAgICAgICBhdXRvIHVybCA9IHRyYXZlcnNhbEVudHJ5
LT5nZXQoKS5lbnRyeS5yZXNwb25zZSgpLnVybCgpOworICAgICAgICBhdXRvIHJlc3VsdCA9IG9y
aWdpbnNBbmRTaXplcy5hZGQoeyB1cmwucHJvdG9jb2woKS50b1N0cmluZygpLCB1cmwuaG9zdCgp
LnRvU3RyaW5nKCksIHVybC5wb3J0KCkgfSwgMCk7CiAKICAgICAgICAgaWYgKGZldGNoT3B0aW9u
cy5jb250YWlucyhXZWJzaXRlRGF0YUZldGNoT3B0aW9uOjpDb21wdXRlU2l6ZXMpKQotICAgICAg
ICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSArPSB0cmF2ZXJzYWxFbnRyeS0+ZW50cnkuc291
cmNlU3RvcmFnZVJlY29yZCgpLmhlYWRlci5zaXplKCkgKyB0cmF2ZXJzYWxFbnRyeS0+cmVjb3Jk
SW5mby5ib2R5U2l6ZTsKKyAgICAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgKz0gdHJh
dmVyc2FsRW50cnktPmdldCgpLmVudHJ5LnNvdXJjZVN0b3JhZ2VSZWNvcmQoKS5oZWFkZXIuc2l6
ZSgpICsgdHJhdmVyc2FsRW50cnktPmdldCgpLnJlY29yZEluZm8uYm9keVNpemU7CiAgICAgfSk7
CiB9CiAKQEAgLTE0NDQsMTUgKzE0NDksMjEgQEAgc3RhdGljIHZvaWQgY2xlYXJEaXNrQ2FjaGVF
bnRyaWVzKE5ldHdvcgogICAgICAgICBvcmlnaW5zVG9EZWxldGUuYWRkKG9yaWdpbi5zZWN1cml0
eU9yaWdpbigpKTsKIAogICAgIFZlY3RvcjxOZXR3b3JrQ2FjaGU6OktleT4gY2FjaGVLZXlzVG9E
ZWxldGU7Ci0gICAgY2FjaGUtPnRyYXZlcnNlKFtjYWNoZSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgb3JpZ2luc1RvRGVsZXRlID0gV1RGTW92ZShvcmln
aW5zVG9EZWxldGUpLCBjYWNoZUtleXNUb0RlbGV0ZSA9IFdURk1vdmUoY2FjaGVLZXlzVG9EZWxl
dGUpXShhdXRvKiB0cmF2ZXJzYWxFbnRyeSkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICh0cmF2ZXJz
YWxFbnRyeSkgewotICAgICAgICAgICAgaWYgKG9yaWdpbnNUb0RlbGV0ZS5jb250YWlucyhTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKHRyYXZlcnNhbEVudHJ5LT5lbnRyeS5yZXNwb25zZSgpLnVybCgp
KSkpCi0gICAgICAgICAgICAgICAgY2FjaGVLZXlzVG9EZWxldGUuYXBwZW5kKHRyYXZlcnNhbEVu
dHJ5LT5lbnRyeS5rZXkoKSk7CisgICAgY2FjaGUtPnRyYXZlcnNlKFtjYWNoZSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgb3JpZ2luc1RvRGVsZXRlID0g
V1RGTW92ZShvcmlnaW5zVG9EZWxldGUpLCBjYWNoZUtleXNUb0RlbGV0ZSA9IFdURk1vdmUoY2Fj
aGVLZXlzVG9EZWxldGUpXShhdXRvIHRyYXZlcnNhbEVudHJ5KSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKHRyYXZlcnNhbEVudHJ5Lmhhc192YWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAob3JpZ2lu
c1RvRGVsZXRlLmNvbnRhaW5zKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodHJhdmVyc2FsRW50cnkt
PmdldCgpLmVudHJ5LnJlc3BvbnNlKCkudXJsKCkpKSkKKyAgICAgICAgICAgICAgICBjYWNoZUtl
eXNUb0RlbGV0ZS5hcHBlbmQodHJhdmVyc2FsRW50cnktPmdldCgpLmVudHJ5LmtleSgpKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGNhY2hlLT5yZW1vdmUoY2Fj
aGVLZXlzVG9EZWxldGUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICBzd2l0Y2ggKHRyYXZlcnNhbEVudHJ5LmVycm9yKCkpIHsKKyAgICAgICAg
Y2FzZSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpUcmF2ZXJzYWxSZXN1bHQ6OkRlY29kZUVycm9yOgor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBOZXR3b3JrQ2FjaGU6OkNhY2hlOjpUcmF2ZXJzYWxSZXN1bHQ6OkZpbmlzaGVk
VHJhdmVyc2luZzoKKyAgICAgICAgICAgIGNhY2hlLT5yZW1vdmUoY2FjaGVLZXlzVG9EZWxldGUs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAJKHJldmlzaW9uIDI0NDc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDU1LDcgKzQ1NSw3IEBAIHZvaWQgQ2FjaGU6OnJlbW92ZShjb25zdCBWZWN0b3I8
S2V5PiYga2UKICAgICBtX3N0b3JhZ2UtPnJlbW92ZShrZXlzLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgQ2FjaGU6OnRyYXZlcnNlKEZ1bmN0aW9uPHZvaWQoY29uc3Qg
VHJhdmVyc2FsRW50cnkqKT4mJiB0cmF2ZXJzZUhhbmRsZXIpCit2b2lkIENhY2hlOjp0cmF2ZXJz
ZShGdW5jdGlvbjx2b2lkKEV4cGVjdGVkPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgVHJh
dmVyc2FsRW50cnk+LCBUcmF2ZXJzYWxSZXN1bHQ+JiYpPiYmIHRyYXZlcnNlSGFuZGxlcikKIHsK
ICAgICAvLyBQcm90ZWN0IGFnYWluc3QgY2xpZW50cyBtYWtpbmcgZXhjZXNzaXZlIHRyYXZlcnNh
bCByZXF1ZXN0cy4KICAgICBjb25zdCB1bnNpZ25lZCBtYXhpbXVtVHJhdmVyc2VDb3VudCA9IDM7
CkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBDYWNoZTo6dHJhdmVyc2UoRnVuY3Rpb248dm9pZChj
b25zdAogICAgICAgICBXVEZMb2dBbHdheXMoIk1heGltdW0gcGFyYWxsZWwgY2FjaGUgdHJhdmVy
c2UgY291bnQgZXhjZWVkZWQuIElnbm9yaW5nIHRyYXZlcnNhbCByZXF1ZXN0LiIpOwogCiAgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdHJhdmVyc2VIYW5kbGVyID0gV1RGTW92ZSh0
cmF2ZXJzZUhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHRyYXZlcnNlSGFuZGxl
cihudWxscHRyKTsKKyAgICAgICAgICAgIHRyYXZlcnNlSGFuZGxlcihtYWtlVW5leHBlY3RlZChU
cmF2ZXJzYWxSZXN1bHQ6OkZpbmlzaGVkVHJhdmVyc2luZykpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MywxOCArNDczLDE4IEBAIHZvaWQgQ2FjaGU6OnRyYXZl
cnNlKEZ1bmN0aW9uPHZvaWQoY29uc3QKICAgICBtX3N0b3JhZ2UtPnRyYXZlcnNlKHJlc291cmNl
VHlwZSgpLCB7IH0sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRyYXZl
cnNlSGFuZGxlciA9IFdURk1vdmUodHJhdmVyc2VIYW5kbGVyKV0gKGNvbnN0IFN0b3JhZ2U6OlJl
Y29yZCogcmVjb3JkLCBjb25zdCBTdG9yYWdlOjpSZWNvcmRJbmZvJiByZWNvcmRJbmZvKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCFyZWNvcmQpIHsKICAgICAgICAgICAgIC0tbV90cmF2ZXJzZUNv
dW50OwotICAgICAgICAgICAgdHJhdmVyc2VIYW5kbGVyKG51bGxwdHIpOworICAgICAgICAgICAg
dHJhdmVyc2VIYW5kbGVyKG1ha2VVbmV4cGVjdGVkKFRyYXZlcnNhbFJlc3VsdDo6RmluaXNoZWRU
cmF2ZXJzaW5nKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBh
dXRvIGVudHJ5ID0gRW50cnk6OmRlY29kZVN0b3JhZ2VSZWNvcmQoKnJlY29yZCk7CiAgICAgICAg
IGlmICghZW50cnkpIHsKLSAgICAgICAgICAgIHRyYXZlcnNlSGFuZGxlcihudWxscHRyKTsKKyAg
ICAgICAgICAgIHRyYXZlcnNlSGFuZGxlcihtYWtlVW5leHBlY3RlZChUcmF2ZXJzYWxSZXN1bHQ6
OkRlY29kZUVycm9yKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAg
ICBUcmF2ZXJzYWxFbnRyeSB0cmF2ZXJzYWxFbnRyeSB7ICplbnRyeSwgcmVjb3JkSW5mbyB9Owot
ICAgICAgICB0cmF2ZXJzZUhhbmRsZXIoJnRyYXZlcnNhbEVudHJ5KTsKKyAgICAgICAgdHJhdmVy
c2VIYW5kbGVyKHsgdHJhdmVyc2FsRW50cnkgfSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAkocmV2
aXNpb24gMjQ0NzU5KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgY29uc3QgRW50cnkmIGVudHJ5OwogICAgICAgICBjb25zdCBTdG9yYWdlOjpSZWNvcmRJ
bmZvJiByZWNvcmRJbmZvOwogICAgIH07Ci0gICAgdm9pZCB0cmF2ZXJzZShGdW5jdGlvbjx2b2lk
KGNvbnN0IFRyYXZlcnNhbEVudHJ5Kik+JiYpOworICAgIGVudW0gY2xhc3MgVHJhdmVyc2FsUmVz
dWx0IDogYm9vbCB7IEZpbmlzaGVkVHJhdmVyc2luZywgRGVjb2RlRXJyb3IgfTsKKyAgICB2b2lk
IHRyYXZlcnNlKEZ1bmN0aW9uPHZvaWQoRXhwZWN0ZWQ8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxj
b25zdCBUcmF2ZXJzYWxFbnRyeT4sIFRyYXZlcnNhbFJlc3VsdD4mJik+JiYpOwogICAgIHZvaWQg
cmVtb3ZlKGNvbnN0IEtleSYpOwogICAgIHZvaWQgcmVtb3ZlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgcmVtb3ZlKGNvbnN0IFZlY3RvcjxLZXk+JiwgRnVuY3Rp
b248dm9pZCgpPiYmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368707</attachid>
            <date>2019-05-01 14:11:04 -0700</date>
            <delta_ts>2019-05-01 14:18:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197399-20190501141103.patch</filename>
            <type>text/plain</type>
            <size>1544</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQ4NDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA1LTAxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdGVjdCBhZ2Fp
bnN0IG51bGwgY3Jhc2ggaW4gZmV0Y2hEaXNrQ2FjaGVFbnRyaWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTczOTkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQ3NzU5MzM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgor
CisgICAgICAgIElmIHRoZSBjYWxsIHRvIEVudHJ5OjpkZWNvZGVTdG9yYWdlUmVjb3JkIHJldHVy
bnMgbnVsbHB0ciBpbiBTdG9yYWdlOjp0cmF2ZXJzZSwgZG8gbm90IGNhbGwgdGhlIHRyYXZlcnNl
SGFuZGxlciwgd2hpY2ggZXhwZWN0cworICAgICAgICB0aGF0IHdoZW4gaXQgaXMgY2FsbGVkIHdp
dGggbnVsbHB0ciB0aGF0IGlzIHRoZSBlbmQgb2YgdGhlIHRyYXZlcnNhbC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OnRyYXZlcnNlKToKKwogMjAxOS0wNS0wMSAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgTGluayBQcmV2aWV3cyB0aGF0IHVzZSBX
S0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyIGFyZSBub3QgYWx3YXlzIHNjYWxlZCBjb3JyZWN0
bHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAJKHJldmlzaW9uIDI0NDgyNCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc4LDEw
ICs0NzgsOCBAQCB2b2lkIENhY2hlOjp0cmF2ZXJzZShGdW5jdGlvbjx2b2lkKGNvbnN0CiAgICAg
ICAgIH0KIAogICAgICAgICBhdXRvIGVudHJ5ID0gRW50cnk6OmRlY29kZVN0b3JhZ2VSZWNvcmQo
KnJlY29yZCk7Ci0gICAgICAgIGlmICghZW50cnkpIHsKLSAgICAgICAgICAgIHRyYXZlcnNlSGFu
ZGxlcihudWxscHRyKTsKKyAgICAgICAgaWYgKCFlbnRyeSkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQogCiAgICAgICAgIFRyYXZlcnNhbEVudHJ5IHRyYXZlcnNhbEVudHJ5IHsgKmVu
dHJ5LCByZWNvcmRJbmZvIH07CiAgICAgICAgIHRyYXZlcnNlSGFuZGxlcigmdHJhdmVyc2FsRW50
cnkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>