<?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>208855</bug_id>
          
          <creation_ts>2020-03-10 04:11:30 -0700</creation_ts>
          <short_desc>Make sure that ServiceWorkerFrameLoaderClient lifetime exceeds its frame lifetime</short_desc>
          <delta_ts>2020-03-10 11:46:25 -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>Service Workers</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1628170</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 04:11:30 -0700</bug_when>
    <thetext>Make sure that ServiceWorkerFrameLoaderClient lifetime exceeds its frame lifetime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628171</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 04:11:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/60187332&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628173</commentid>
    <comment_count>2</comment_count>
      <attachid>393134</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 04:19:07 -0700</bug_when>
    <thetext>Created attachment 393134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628269</commentid>
    <comment_count>3</comment_count>
      <attachid>393134</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-10 09:08:22 -0700</bug_when>
    <thetext>Comment on attachment 393134
Patch

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

&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:92
&gt; +void ServiceWorkerFrameLoaderClient::frameLoaderDestroyed()

This seems like code that is bound to cause leaks, error prone at the very least. If you call ServiceWorkerFrameLoaderClient::create() and do nothing, it leaks. Not a great pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628280</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-10 09:29:09 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 393134 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=393134&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:92
&gt; &gt; +void ServiceWorkerFrameLoaderClient::frameLoaderDestroyed()
&gt; 
&gt; This seems like code that is bound to cause leaks, error prone at the very
&gt; least. If you call ServiceWorkerFrameLoaderClient::create() and do nothing,
&gt; it leaks. Not a great pattern.

Agreed.
This is the current pattern for all WebFrameLoaderClient in WebKit1 and WebKit2.
I thought of making Frame take a UniqueRef&lt;FrameLoaderClient&gt; so that we do not have this pattern anymore but ended up more conservative in this patch to specifically fix this crash. Refactoring could be done as a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628300</commentid>
    <comment_count>5</comment_count>
      <attachid>393134</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-10 10:19:12 -0700</bug_when>
    <thetext>Comment on attachment 393134
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:92
&gt;&gt;&gt; +void ServiceWorkerFrameLoaderClient::frameLoaderDestroyed()
&gt;&gt; 
&gt;&gt; This seems like code that is bound to cause leaks, error prone at the very least. If you call ServiceWorkerFrameLoaderClient::create() and do nothing, it leaks. Not a great pattern.
&gt; 
&gt; Agreed.
&gt; This is the current pattern for all WebFrameLoaderClient in WebKit1 and WebKit2.
&gt; I thought of making Frame take a UniqueRef&lt;FrameLoaderClient&gt; so that we do not have this pattern anymore but ended up more conservative in this patch to specifically fix this crash. Refactoring could be done as a follow-up.

And in some cases, we just leak new WebFrameLoaderClient!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628302</commentid>
    <comment_count>6</comment_count>
      <attachid>393134</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-10 10:20:38 -0700</bug_when>
    <thetext>Comment on attachment 393134
Patch

r=me

Seems right to me that we should fix the bug and then change the design, so I guess I&apos;ll say r+.

The ownership design for WebFrameLoaderClient seems busted and worth fixing, though. I&apos;d prefer a design where FrameLoader kept a unique_ptr to the client, or, if that&apos;s not possible, then a RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628343</commentid>
    <comment_count>7</comment_count>
      <attachid>393134</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 11:46:23 -0700</bug_when>
    <thetext>Comment on attachment 393134
Patch

Clearing flags on attachment: 393134

Committed r258223: &lt;https://trac.webkit.org/changeset/258223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628344</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-10 11:46:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393134</attachid>
            <date>2020-03-10 04:19:07 -0700</date>
            <delta_ts>2020-03-10 11:46:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208855-20200310121905.patch</filename>
            <type>text/plain</type>
            <size>11965</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmEwYjhmYWQ1YzA2YmE0
NTAwMGJmNGVkZWVlMGNkNDRhMTc1ZmY5Zi4uZDhjZDk1Zjg4M2MyZjdmYjZjN2IxNGUwMjU0MTUz
ZTk5YmE3ZmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTEwICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBT
ZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgbGlmZXRpbWUgZXhjZWVkcyBpdHMgZnJhbWUg
bGlmZXRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjAxODczMzI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxpZmV0aW1lIG1hbmFnZW1l
bnQgb2YgdGhlIGxvYWRlciBjbGllbnQgdG8gU1dDb250ZXh0TWFuYWdlciBpbnN0ZWFkIG9mIGl0
cyBjb25uZWN0aW9uLCB3aGljaCBoYXMgYSBzaG9ydGVyIGxpZmV0aW1lLgorICAgICAgICBObyBK
UyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dD
b250ZXh0TWFuYWdlcjo6YWRkU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnJlbW92ZVNlcnZpY2VXb3JrZXJGcmFtZUxv
YWRlckNsaWVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oOgorCiAyMDIwLTAzLTA5ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgc3luYyBJUEMgd2hlbiBjcmVhdGluZyBhIHJlbW90ZSBjYXB0
dXJlIHNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA0YmRhZTAwYzg4MWU3M2FlZmI4N2Y3NGM1Yjg4YmZmM2M3
YmNiNGY1Li4wMWVjZjNhZGZkODI2NjA0ZDFkYmQxOTEzOGVmZDRlMGQ3ZTMyNmU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTAzLTEwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQgbGlmZXRpbWUgZXhjZWVkcyBpdHMgZnJhbWUgbGlmZXRpbWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODg1NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjAxODczMzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW4gY2FzZSBjb25uZWN0aW9uIGlzIGRlc3Ryb3llZCwgZm9yIGluc3Rh
bmNlIGR1ZSB0byBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hpbmcsCisgICAgICAgIHdlIGRlc3Ryb3kg
YWxsIHNlcnZpY2Ugd29ya2VyIGZyYW1lIGxvYWRlciBjbGllbnRzLgorICAgICAgICBUaGlzIGlz
IHRvbyBzb29uIGFzIHNlcnZpY2Ugd29ya2VyIHRocmVhZCBwcm94eSBpcyByZWZjb3VudGVkIGFu
ZCBjYW4gbGFzdCBsb25nZXIuCisgICAgICAgIEZvciB0aGF0IHJlYXNvbiwgd2Ugbm93IGxldCB0
aGUgU1dDb250ZXh0TWFuYWdlciBoYW5kbGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBmcmFtZSBsb2Fk
ZXIgY2xpZW50cy4KKyAgICAgICAgRHJpdmUtYnkgZml4OiBnZW5lcmF0ZSBhIG5ldyBmcmFtZSBp
ZGVudGlmaWVyIGluc3RlYWQgb2YgdXNpbmcgYW4gaW50ZXJuYWwgY291bnRlciB3aGljaCBjYW4g
YmUgd3JvbmcgaW4gY2FzZSBvZiBuZXcgY29ubmVjdGlvbgorICAgICAgICBhbmQgbWlnaHQgY2xh
c2ggd2l0aCBvdGhlciBmcmFtZSBpZGVudGlmaWVycyBub3cgdGhhdCBzZXJ2aWNlIHdvcmtlcnMg
Y2FuIHJ1biBpbiBwcm9jZXNzIHdpdGggcGFnZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudDo6U2VydmljZVdvcmtlckZyYW1lTG9h
ZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xp
ZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisKIDIwMjAt
MDMtMDkgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBzeW5jIElQQyB3aGVuIGNyZWF0aW5nIGEgcmVtb3RlIGNhcHR1cmUgc291cmNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuY3BwCmluZGV4IGI5OGQ2NjQ3YWRiYTZlNWY2MGY0M2Q4YWRjYTFmNjI5ZWUyODJk
NjIuLjE5MTMyZGE3ZTRhNTc1NjM1YTg1ZWRjMWJiZjliYzA3MTRiMjcyMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiU1dDb250ZXh0TWFuYWdl
ci5oIgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIK
QEAgLTE4MSw2ICsxODIsMTcgQEAgdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpzdG9wQWxsU2Vydmlj
ZVdvcmtlcnMoKQogICAgICAgICBzdG9wV29ya2VyKHNlcnZpY2VXb3JrZXIsIHdvcmtlclRlcm1p
bmF0aW9uVGltZW91dCwgW10geyB9KTsKIH0KIAordm9pZCBTV0NvbnRleHRNYW5hZ2VyOjphZGRT
ZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEZyYW1lTG9hZGVy
Q2xpZW50PiYmIGNsaWVudCkKK3sKKyAgICBtX3NlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVu
dHMuYWRkKFdURk1vdmUoY2xpZW50KSk7Cit9CisKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cmVt
b3ZlU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KEZyYW1lTG9hZGVyQ2xpZW50JiBjbGll
bnQpCit7CisgICAgQVNTRVJUKG1fc2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50cy5jb250
YWlucygmY2xpZW50KSk7CisgICAgbV9zZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnRzLnJl
bW92ZSgmY2xpZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuaAppbmRleCA4MjliOWU0MDgxYzZhYmI1NGVkNDBhMTlkYTg3YTA3OGE3N2Mx
ZjExLi5jNmYyYjBhZjQyYzBhYjM5MjI3NTI5OGQ5MDliODM2ODI0NmI4M2ViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oCkBAIC0zNyw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFz
cyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiAKQEAgLTEwMiw2ICsxMDMsOSBAQCBwdWJsaWM6
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BBbGxTZXJ2aWNlV29ya2VycygpOwogCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQo
c3RkOjp1bmlxdWVfcHRyPEZyYW1lTG9hZGVyQ2xpZW50PiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChGcmFtZUxvYWRlckNs
aWVudCYpOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHdvcmtlclRlcm1pbmF0aW9u
VGltZW91dCB7IDEwX3MgfTsKICAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc3luY1dvcmtl
clRlcm1pbmF0aW9uVGltZW91dCB7IDEwMF9tcyB9OyAvLyBPbmx5IHVzZWQgYnkgbGF5b3V0IHRl
c3RzLgogCkBAIC0xMjYsNiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgVGltZXIgbV90aW1l
b3V0VGltZXI7CiAgICAgfTsKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlclRlcm1pbmF0aW9uUmVxdWVzdD4+IG1fcGVuZGlu
Z1NlcnZpY2VXb3JrZXJUZXJtaW5hdGlvblJlcXVlc3RzOworICAgIEhhc2hTZXQ8c3RkOjp1bmlx
dWVfcHRyPEZyYW1lTG9hZGVyQ2xpZW50Pj4gbV9zZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDNiNDhkOWUwMTQyZWUyYzdiNzIyZmFjY2M1MDM5MTdkNTAwZjg3
ZjIuLmJkNDRmYzU1MWY3YjI2ZjI5NWE0ZTU3ZWQ1MDQyYThmOTczZWUzMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTcyLDE1ICs3MiwyOCBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50OjpTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQotICAgIDog
bV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX3dlYlBhZ2VQcm94eUlEKHdlYlBhZ2VQ
cm94eUlEKQorCitTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQmIFNlcnZpY2VXb3JrZXJG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVBy
b3h5SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBz
dGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PihuZXcgU2Vydmlj
ZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KHdlYlBhZ2VQcm94eUlELCBwYWdlSUQsIGZyYW1lSUQs
IHVzZXJBZ2VudCkpOworICAgIGF1dG8mIGNsaWVudCA9ICpmcmFtZUxvYWRlckNsaWVudDsKKyAg
ICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5hZGRTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpOworICAgIHJldHVybiBjbGllbnQ7
Cit9CisKK1NlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudDo6U2VydmljZVdvcmtlckZyYW1l
TG9hZGVyQ2xpZW50KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KQorICAgIDogbV93ZWJQYWdlUHJveHlJRCh3ZWJQYWdlUHJveHlJRCkKICAgICAs
IG1fcGFnZUlEKHBhZ2VJRCkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV91c2Vy
QWdlbnQodXNlckFnZW50KQogewogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNs
aWVudDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKQoreworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNp
bmdsZXRvbigpLnJlbW92ZVNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCgqdGhpcyk7Cit9
CisKIFJlZjxEb2N1bWVudExvYWRlcj4gU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKIHsKICAgICByZXR1cm4gV2ViRG9jdW1l
bnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CkBAIC0xNDksMTIgKzE2
Miw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNl
V29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250CiAgICAgaWYgKGVmZmVjdGl2ZVVzZXJBZ2Vu
dC5pc051bGwoKSkKICAgICAgICAgZWZmZWN0aXZlVXNlckFnZW50ID0gbV91c2VyQWdlbnQ7CiAK
LSAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdl
YkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24KLSAgICAvLyBJZiBpdCB3ZXJlbid0
IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQncyBkZXBlbmRlbmNlIG9uIFdlYkRv
Y3VtZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkgaGFwcGVuLgotICAgIC8vIEZJWE1FOiBX
ZWlyZCB0byBwYXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMgYSBGcmFtZUlkZW50aWZp
ZXIuCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IG1ha2VVbmlxdWU8U2VydmljZVdvcmtl
ckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgbV93ZWJQYWdlUHJveHlJRCwgbV9wYWdlSUQsIG1h
a2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllclR5cGU+KCsrbV9wcmV2
aW91c1NlcnZpY2VXb3JrZXJJRCksIGVmZmVjdGl2ZVVzZXJBZ2VudCk7Ci0gICAgcGFnZUNvbmZp
Z3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQuZ2V0
KCk7Ci0gICAgbV9sb2FkZXJzLmFkZChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7CisgICAg
cGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gJlNlcnZpY2VXb3Jr
ZXJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5SUQsIG1fcGFnZUlELCBG
cmFtZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CiAKICAgICBh
dXRvIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
Y3JlYXRlKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBXVEZNb3ZlKGVmZmVjdGl2
ZVVzZXJBZ2VudCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVy
KCksIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KTsKICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5n
bGV0b24oKS5yZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFdURk1vdmUoc2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KSk7CkBAIC0xNjcsMTIgKzE3NSw2IEBAIHZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQp
CiAgICAgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnJlbW92ZUZyYW1lTG9hZGVyQ2xpZW50KFNlcnZpY2VX
b3JrZXJGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50KQotewotICAgIGF1dG8gcmVzdWx0ID0gbV9s
b2FkZXJzLnJlbW92ZSgmY2xpZW50KTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
KTsKLX0KLQogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtl
clN0YXJ0ZWQoT3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRh
SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKQogewogICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6U2Ny
aXB0Q29udGV4dFN0YXJ0ZWQgeyBqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGRvZXNIYW5kbGVGZXRjaCB9LCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oCmluZGV4IDJkOGVkMDJhMjJkODY1MGIyMTM4N2VhMDRkZGFmMzVhZDFkMDZhMzQuLmVjMWU4
M2FkYmY5NWQxOGFkMDEwOGI5NzNjMzAxYmU3NDM2YmUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uaApAQCAtNjIsOCArNjIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9pZCByZW1v
dmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQmKTsKLQog
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYpOwogCkBAIC0xMDUsNyArMTAzLDYgQEAgcHJpdmF0ZToKICAgICB1aW50NjRf
dCBtX3BhZ2VHcm91cElEOwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJv
eHlJRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRf
dCBtX3ByZXZpb3VzU2VydmljZVdvcmtlcklEIHsgMCB9OwogCiAgICAgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSB7
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k6OkFsbG93QWxs
U3RvcmFnZSB9OwogCkBAIC0xMjAsMjUgKzExNywyNyBAQCBwcml2YXRlOgogCiBjbGFzcyBTZXJ2
aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RW1wdHlG
cmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVy
Q2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpOworICAgIHN0YXRpYyBTZXJ2aWNlV29ya2VyRnJhbWVM
b2FkZXJDbGllbnQmIGNyZWF0ZShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCk7CiAKLSAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpIHsgbV91
c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCk7IH0KLSAgICAKICAgICBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQYWdlUHJveHlJ
RDsgfQotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQor
CisgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KSB7IG1fdXNlckFnZW50
ID0gV1RGTW92ZSh1c2VyQWdlbnQpOyB9CiAKIHByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
KTsKKwogICAgIFJlZjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4gY3JlYXRlRG9jdW1lbnRMb2Fk
ZXIoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6U3Vic3Rp
dHV0ZURhdGEmKSBmaW5hbDsKIAotICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBmaW5h
bCB7IG1fY29ubmVjdGlvbi5yZW1vdmVGcmFtZUxvYWRlckNsaWVudCgqdGhpcyk7IH0KKyAgICB2
b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmluYWw7CisKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7
IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nKSBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNs
aWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFN0cmluZyB1c2VyQWdl
bnQoY29uc3QgVVJMJikgZmluYWwgeyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KIAotICAgIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgV2ViUGFnZVByb3h5
SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IG1fcGFnZUlEOwogICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>