<?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>214345</bug_id>
          
          <creation_ts>2020-07-15 03:42:17 -0700</creation_ts>
          <short_desc>[MSE][GStreamer] Break circular reference between SourceBufferPrivateGStreamer and AppendPipeline</short_desc>
          <delta_ts>2020-07-15 05:56:29 -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>WebKitGTK</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="Alicia Boya García">aboya</reporter>
          <assigned_to name="Alicia Boya García">aboya</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671698</commentid>
    <comment_count>0</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-07-15 03:42:17 -0700</bug_when>
    <thetext>SourceBufferPrivate is ref counted.

AppendPipeline is owned exclusively by SourceBufferPrivateGStreamer:
it&apos;s born and destroyed with it, managed by a never-moved unique_ptr.

AppendPipeline needs a reference to SourceBufferPrivateGStreamer to
notify it of essential events like samples having been parsed. This
used to be a Ref&lt;&gt;, thus creating a circular reference leak:

AppendPipeline is only destroyed in SourceBufferPrivateGStreamer
destructor. AppendPipeline holds ref counted reference to
SourceBufferPrivateGStreamer, therefore neither are destroyed.

This patch breaks the cycle by replacing the Ref&lt;&gt; in AppendPipeline
with a plain old reference. This is safe because
SourceBufferPrivateGStreamer owns, and therefore is alive at least
just as long as AppendPipeline.

As a consequence of not using Ref&lt;&gt;, the SourceBufferPrivateGStreamer
constructor does no longer need to relax the adoption requirements and
unique_ptr&lt;AppendPipeline&gt; can be replaced by a UniqueRef&lt;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671699</commentid>
    <comment_count>1</comment_count>
      <attachid>404329</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-07-15 03:44:51 -0700</bug_when>
    <thetext>Created attachment 404329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671701</commentid>
    <comment_count>2</comment_count>
      <attachid>404329</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-07-15 04:44:06 -0700</bug_when>
    <thetext>Comment on attachment 404329
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:57
&gt; -    Ref&lt;SourceBufferPrivateGStreamer&gt; sourceBufferPrivate() { return m_sourceBufferPrivate.get(); }
&gt; +    SourceBufferPrivateGStreamer&amp; sourceBufferPrivate() { return m_sourceBufferPrivate; }
&gt;      GstCaps* appsinkCaps() { return m_appsinkCaps.get(); }
&gt;      RefPtr&lt;WebCore::TrackPrivateBase&gt; track() { return m_track; }
&gt;      MediaPlayerPrivateGStreamerMSE* playerPrivate() { return m_playerPrivate; }

At some point I think we should flag all these that just return object state as const. I think we would need a separate bug but if you feel like doing it, it would be great.

Besides, the original code should have returned a const Ref&amp; as you won&apos;t touch the pointer but the object in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671714</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-15 05:56:27 -0700</bug_when>
    <thetext>Committed r264392: &lt;https://trac.webkit.org/changeset/264392&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404329.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404329</attachid>
            <date>2020-07-15 03:44:51 -0700</date>
            <delta_ts>2020-07-15 05:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214345-20200715124449.patch</filename>
            <type>text/plain</type>
            <size>12652</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdlMjNjZDM0ODVhMDY3
ZTA5MGJiYjgxMThiYWVjOTBhNjA3MjBiZC4uMmQ1MTAyZWRkM2Q5NGJjMmIxNDIwOTEyMWE1NThh
MzZmYjBkYmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA3LTE1ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIEJyZWFrIGNpcmN1bGFyIHJlZmVyZW5jZSBiZXR3ZWVuIFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIgYW5kIEFwcGVuZFBpcGVsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlIGlzIHJlZiBjb3VudGVk
LgorCisgICAgICAgIEFwcGVuZFBpcGVsaW5lIGlzIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6CisgICAgICAgIGl0J3MgYm9ybiBhbmQgZGVzdHJveWVk
IHdpdGggaXQsIG1hbmFnZWQgYnkgYSBuZXZlci1tb3ZlZCB1bmlxdWVfcHRyLgorCisgICAgICAg
IEFwcGVuZFBpcGVsaW5lIG5lZWRzIGEgcmVmZXJlbmNlIHRvIFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIgdG8KKyAgICAgICAgbm90aWZ5IGl0IG9mIGVzc2VudGlhbCBldmVudHMgbGlrZSBz
YW1wbGVzIGhhdmluZyBiZWVuIHBhcnNlZC4gVGhpcworICAgICAgICB1c2VkIHRvIGJlIGEgUmVm
PD4sIHRodXMgY3JlYXRpbmcgYSBjaXJjdWxhciByZWZlcmVuY2UgbGVhazoKKworICAgICAgICBB
cHBlbmRQaXBlbGluZSBpcyBvbmx5IGRlc3Ryb3llZCBpbiBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyCisgICAgICAgIGRlc3RydWN0b3IuIEFwcGVuZFBpcGVsaW5lIGhvbGRzIHJlZiBjb3Vu
dGVkIHJlZmVyZW5jZSB0bworICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLCB0
aGVyZWZvcmUgbmVpdGhlciBhcmUgZGVzdHJveWVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYnJl
YWtzIHRoZSBjeWNsZSBieSByZXBsYWNpbmcgdGhlIFJlZjw+IGluIEFwcGVuZFBpcGVsaW5lCisg
ICAgICAgIHdpdGggYSBwbGFpbiBvbGQgcmVmZXJlbmNlLiBUaGlzIGlzIHNhZmUgYmVjYXVzZQor
ICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyIG93bnMsIGFuZCB0aGVyZWZvcmUg
aXMgYWxpdmUgYXQgbGVhc3QKKyAgICAgICAganVzdCBhcyBsb25nIGFzIEFwcGVuZFBpcGVsaW5l
LgorCisgICAgICAgIEFzIGEgY29uc2VxdWVuY2Ugb2Ygbm90IHVzaW5nIFJlZjw+LCB0aGUgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcgorICAgICAgICBjb25zdHJ1Y3RvciBkb2VzIG5vIGxv
bmdlciBuZWVkIHRvIHJlbGF4IHRoZSBhZG9wdGlvbiByZXF1aXJlbWVudHMgYW5kCisgICAgICAg
IHVuaXF1ZV9wdHI8QXBwZW5kUGlwZWxpbmU+IGNhbiBiZSByZXBsYWNlZCBieSBhIFVuaXF1ZVJl
Zjw+LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6QXBwZW5kUGlw
ZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUVycm9yQ29u
ZGl0aW9uRnJvbVN0cmVhbWluZ1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBl
bGluZTo6aGFuZGxlU3RhdGVDaGFuZ2VNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVu
ZFBpcGVsaW5lOjpoYW5kbGVFbmRPZkFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQ
aXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRQaXBl
bGluZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBlbmRQaXBlbGluZTo6Y29ubmVjdERlbXV4ZXJTcmNQYWRUb0FwcHNpbmspOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpzb3VyY2VCdWZmZXJQcml2YXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lck1TRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJNU0U6OnRyYWNrRGV0ZWN0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDoKKwogMjAyMC0wNy0xMyAgQWxpY2lhIEJv
eWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVy
XSBEaXNjYXJkIFBUUy1sZXNzIHNhbXBsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5j
cHAKaW5kZXggNzRjMzk4NzAzNzllMjViNDk1MmYzN2YyZTgzMzMwNzUxNDk2YmQ3OC4uMTcwOTZm
ODZlNmI5NDYxZTYwNzFiYWE3MmZiOTRmNGIxOTZiNmFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBl
bmRQaXBlbGluZS5jcHAKQEAgLTk5LDggKzk5LDggQEAgc3RhdGljIHZvaWQgYXNzZXJ0ZWRFbGVt
ZW50U2V0U3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0U3RhdGUgZGVzaXJlZFN0YXRlKQog
ICAgIH0KIH0KIAotQXBwZW5kUGlwZWxpbmU6OkFwcGVuZFBpcGVsaW5lKFJlZjxTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VCdWZmZXJQcml2YXRlLCBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UmIHBsYXllclByaXZhdGUpCi0gICAgOiBtX3NvdXJjZUJ1ZmZlclByaXZh
dGUoc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKSkKK0FwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBl
bGluZShTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyJiBzb3VyY2VCdWZmZXJQcml2YXRlLCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJNU0UmIHBsYXllclByaXZhdGUpCisgICAgOiBtX3Nv
dXJjZUJ1ZmZlclByaXZhdGUoc291cmNlQnVmZmVyUHJpdmF0ZSkKICAgICAsIG1fcGxheWVyUHJp
dmF0ZSgmcGxheWVyUHJpdmF0ZSkKICAgICAsIG1faWQoMCkKICAgICAsIG1fd2FzQnVzQWxyZWFk
eU5vdGlmaWVkT2ZBdmFpbGFibGVTYW1wbGVzKGZhbHNlKQpAQCAtMTE1LDcgKzExNSw3IEBAIEFw
cGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZShSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcj4gc291cmNlQnVmZmVyUHJpCiAgICAgLy8gVGhlIHRyYWNrIG5hbWUgaXMgc3RpbGwgdW5r
bm93biBhdCB0aGlzIHRpbWUsIHRob3VnaC4KICAgICBzdGF0aWMgc2l6ZV90IGFwcGVuZFBpcGVs
aW5lQ291bnQgPSAwOwogICAgIFN0cmluZyBwaXBlbGluZU5hbWUgPSBtYWtlU3RyaW5nKCJhcHBl
bmQtcGlwZWxpbmUtIiwKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT50eXBlKCkuY29u
dGFpbmVyVHlwZSgpLnJlcGxhY2UoIi8iLCAiLSIpLCAnLScsIGFwcGVuZFBpcGVsaW5lQ291bnQr
Kyk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS50eXBlKCkuY29udGFpbmVyVHlwZSgp
LnJlcGxhY2UoIi8iLCAiLSIpLCAnLScsIGFwcGVuZFBpcGVsaW5lQ291bnQrKyk7CiAgICAgbV9w
aXBlbGluZSA9IGdzdF9waXBlbGluZV9uZXcocGlwZWxpbmVOYW1lLnV0ZjgoKS5kYXRhKCkpOwog
CiAgICAgbV9idXMgPSBhZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5F
KG1fcGlwZWxpbmUuZ2V0KCkpKSk7CkBAIC0xNDEsNyArMTQxLDcgQEAgQXBwZW5kUGlwZWxpbmU6
OkFwcGVuZFBpcGVsaW5lKFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyPiBzb3VyY2VC
dWZmZXJQcmkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFwcGVuZFBpcGVsaW5lKj4odXNl
ckRhdGEpLT5hcHBzcmNFbmRPZkFwcGVuZENoZWNrZXJQcm9iZShwYWRQcm9iZUluZm8pOwogICAg
IH0sIHRoaXMsIG51bGxwdHIpOwogCi0gICAgY29uc3QgU3RyaW5nJiB0eXBlID0gbV9zb3VyY2VC
dWZmZXJQcml2YXRlLT50eXBlKCkuY29udGFpbmVyVHlwZSgpOworICAgIGNvbnN0IFN0cmluZyYg
dHlwZSA9IG1fc291cmNlQnVmZmVyUHJpdmF0ZS50eXBlKCkuY29udGFpbmVyVHlwZSgpOwogICAg
IEdTVF9ERUJVRygiU291cmNlQnVmZmVyIGNvbnRhaW5lclR5cGU6ICVzIiwgdHlwZS51dGY4KCku
ZGF0YSgpKTsKICAgICBpZiAodHlwZS5lbmRzV2l0aCgibXA0IikgfHwgdHlwZS5lbmRzV2l0aCgi
YWFjIikpCiAgICAgICAgIG1fZGVtdXggPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF0ZGVt
dXgiLCBudWxscHRyKTsKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjpo
YW5kbGVFcnJvckNvbmRpdGlvbkZyb21TdHJlYW1pbmdUaHJlYWQoKQogICAgIGF1dG8gcmVzcG9u
c2UgPSBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFza0FuZFdhaXQ8QWJvcnRhYmxlVGFza1F1ZXVlOjpW
b2lkPihbdGhpc10oKSB7CiAgICAgICAgIG1fZXJyb3JSZWNlaXZlZCA9IHRydWU7CiAgICAgICAg
IC8vIGFwcGVuZFBhcnNpbmdGYWlsZWQoKSB3aWxsIGNhdXNlIHJlc2V0UGFyc2VyU3RhdGUoKSB0
byBiZSBjYWxsZWQuCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+YXBwZW5kUGFyc2lu
Z0ZhaWxlZCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUuYXBwZW5kUGFyc2luZ0Zh
aWxlZCgpOwogICAgICAgICByZXR1cm4gQWJvcnRhYmxlVGFza1F1ZXVlOjpWb2lkKCk7CiAgICAg
fSk7CiAjaWZkZWYgTkRFQlVHCkBAIC0zNDIsNyArMzQyLDcgQEAgdm9pZCBBcHBlbmRQaXBlbGlu
ZTo6aGFuZGxlU3RhdGVDaGFuZ2VNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgaWYg
KEdTVF9NRVNTQUdFX1NSQyhtZXNzYWdlKSA9PSByZWludGVycHJldF9jYXN0PEdzdE9iamVjdCo+
KG1fcGlwZWxpbmUuZ2V0KCkpKSB7CiAgICAgICAgIEdzdFN0YXRlIGN1cnJlbnRTdGF0ZSwgbmV3
U3RhdGU7CiAgICAgICAgIGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQobWVzc2FnZSwg
JmN1cnJlbnRTdGF0ZSwgJm5ld1N0YXRlLCBudWxscHRyKTsKLSAgICAgICAgQ1N0cmluZyBzb3Vy
Y2VCdWZmZXJUeXBlID0gU3RyaW5nKG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+dHlwZSgpLnJhdygp
KQorICAgICAgICBDU3RyaW5nIHNvdXJjZUJ1ZmZlclR5cGUgPSBTdHJpbmcobV9zb3VyY2VCdWZm
ZXJQcml2YXRlLnR5cGUoKS5yYXcoKSkKICAgICAgICAgICAgIC5yZXBsYWNlKCIvIiwgIl8iKS5y
ZXBsYWNlKCIgIiwgIl8iKQogICAgICAgICAgICAgLnJlcGxhY2UoIlwiIiwgIiIpLnJlcGxhY2Uo
IlwnIiwgIiIpLnV0ZjgoKTsKICAgICAgICAgQ1N0cmluZyBkb3RGaWxlTmFtZSA9IG1ha2VTdHJp
bmcoIndlYmtpdC1hcHBlbmQtIiwKQEAgLTQ0OCw3ICs0NDgsNyBAQCB2b2lkIEFwcGVuZFBpcGVs
aW5lOjpoYW5kbGVFbmRPZkFwcGVuZCgpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBjb25zdW1lQXBwc2lua0F2YWlsYWJsZVNhbXBsZXMoKTsKICAgICBHU1RfVFJBQ0VfT0JKRUNU
KG1fcGlwZWxpbmUuZ2V0KCksICJOb3RpZnlpbmcgU291cmNlQnVmZmVyUHJpdmF0ZSB0aGUgYXBw
ZW5kIGlzIGNvbXBsZXRlIik7Ci0gICAgc291cmNlQnVmZmVyUHJpdmF0ZSgpLT5kaWRSZWNlaXZl
QWxsUGVuZGluZ1NhbXBsZXMoKTsKKyAgICBzb3VyY2VCdWZmZXJQcml2YXRlKCkuZGlkUmVjZWl2
ZUFsbFBlbmRpbmdTYW1wbGVzKCk7CiB9CiAKIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtO
ZXdTYW1wbGUoR1JlZlB0cjxHc3RTYW1wbGU+JiYgc2FtcGxlKQpAQCAtNDk0LDcgKzQ5NCw3IEBA
IHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR1JlZlB0cjxHc3RTYW1wbGU+
JiYgc2FtcGxlKQogICAgICAgICBtZWRpYVNhbXBsZS0+ZXh0ZW5kVG9UaGVCZWdpbm5pbmcoKTsK
ICAgICB9CiAKLSAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPmRpZFJlY2VpdmVTYW1wbGUobWVk
aWFTYW1wbGUuZ2V0KCkpOworICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS5kaWRSZWNlaXZlU2Ft
cGxlKG1lZGlhU2FtcGxlLmdldCgpKTsKIH0KIAogdm9pZCBBcHBlbmRQaXBlbGluZTo6ZGlkUmVj
ZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpCkBAIC01MjYsNyArNTI2LDcgQEAgdm9pZCBBcHBl
bmRQaXBlbGluZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCgpCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudChpbml0aWFsaXphdGlvblNlZ21lbnQpOworICAgIG1fc291cmNlQnVm
ZmVyUHJpdmF0ZS5kaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGluaXRpYWxpemF0aW9u
U2VnbWVudCk7CiB9CiAKIEF0b21TdHJpbmcgQXBwZW5kUGlwZWxpbmU6OnRyYWNrSWQoKQpAQCAt
NzUxLDcgKzc1MSw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmNvbm5lY3REZW11eGVyU3JjUGFk
VG9BcHBzaW5rKEdzdFBhZCogZGVtdXhlclNyY1BhZCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEdTVF9ERUJVRygiQ29ubmVjdGluZyB0byBhcHBzaW5rIik7CiAKLSAgICBjb25z
dCBTdHJpbmcmIHR5cGUgPSBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPnR5cGUoKS5jb250YWluZXJU
eXBlKCk7CisgICAgY29uc3QgU3RyaW5nJiB0eXBlID0gbV9zb3VyY2VCdWZmZXJQcml2YXRlLnR5
cGUoKS5jb250YWluZXJUeXBlKCk7CiAgICAgaWYgKHR5cGUuZW5kc1dpdGgoIndlYm0iKSkKICAg
ICAgICAgZ3N0X3BhZF9hZGRfcHJvYmUoZGVtdXhlclNyY1BhZCwgR1NUX1BBRF9QUk9CRV9UWVBF
X0VWRU5UX0RPV05TVFJFQU0sIG1hdHJvc2thZGVtdXhGb3JjZVNlZ21lbnRTdGFydFRvRXF1YWxa
ZXJvLCBudWxscHRyLCBudWxscHRyKTsKIApAQCAtNzg5LDcgKzc4OSw3IEBAIHZvaWQgQXBwZW5k
UGlwZWxpbmU6OmNvbm5lY3REZW11eGVyU3JjUGFkVG9BcHBzaW5rKEdzdFBhZCogZGVtdXhlclNy
Y1BhZCkKIAogICAgICAgICAvLyBhcHBlbmRQYXJzaW5nRmFpbGVkKCkgd2lsbCBpbW1lZGlhdGVs
eSBjYXVzZSBhIHJlc2V0UGFyc2VyU3RhdGUoKSB3aGljaCB3aWxsIHN0b3AgZGVtdXhpbmcsIHRo
ZW4gdGhlCiAgICAgICAgIC8vIEFwcGVuZFBpcGVsaW5lIHdpbGwgYmUgZGVzdHJveWVkLgotICAg
ICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGUtPmFwcGVuZFBhcnNpbmdGYWlsZWQoKTsKKyAgICAg
ICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLmFwcGVuZFBhcnNpbmdGYWlsZWQoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdTVF9XQVJOSU5HX09CSkVDVChtX3BpcGVs
aW5lLmdldCgpLCAiUGFkIGhhcyB1bmtub3duIHRyYWNrIHR5cGUsIGlnbm9yaW5nOiAlIiBHU1Rf
UFRSX0ZPUk1BVCwgY2Fwcy5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKaW5k
ZXggNTRhODYwMDJkNWZkZTM3ZmU3MmZkYTQyZGFhODI3MDg5ZDBhZGRmMC4uMTE2MTg2ZTNjZDZh
MjczZjMzZWMyNGNjOTdkOGIyZmU5YmJiNjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxp
bmUuaApAQCAtNDYsMTIgKzQ2LDEyIEBAIHN0cnVjdCBQYWRQcm9iZUluZm9ybWF0aW9uIHsKIGNs
YXNzIEFwcGVuZFBpcGVsaW5lIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBBcHBlbmRQaXBlbGluZShSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4s
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRSYpOworICAgIEFwcGVuZFBpcGVsaW5lKFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXImLCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJN
U0UmKTsKICAgICB2aXJ0dWFsIH5BcHBlbmRQaXBlbGluZSgpOwogCiAgICAgdm9pZCBwdXNoTmV3
QnVmZmVyKEdSZWZQdHI8R3N0QnVmZmVyPiYmKTsKICAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUo
KTsKLSAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gc291cmNlQnVmZmVyUHJp
dmF0ZSgpIHsgcmV0dXJuIG1fc291cmNlQnVmZmVyUHJpdmF0ZS5nZXQoKTsgfQorICAgIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXImIHNvdXJjZUJ1ZmZlclByaXZhdGUoKSB7IHJldHVybiBt
X3NvdXJjZUJ1ZmZlclByaXZhdGU7IH0KICAgICBHc3RDYXBzKiBhcHBzaW5rQ2FwcygpIHsgcmV0
dXJuIG1fYXBwc2lua0NhcHMuZ2V0KCk7IH0KICAgICBSZWZQdHI8V2ViQ29yZTo6VHJhY2tQcml2
YXRlQmFzZT4gdHJhY2soKSB7IHJldHVybiBtX3RyYWNrOyB9CiAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyTVNFKiBwbGF5ZXJQcml2YXRlKCkgeyByZXR1cm4gbV9wbGF5ZXJQcml2YXRl
OyB9CkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBVc2VkIG9ubHkgZm9yIGFz
c2VydGluZyBFT1MgZXZlbnRzIGFyZSBvbmx5IGNhdXNlZCBieSBkZW11eGluZyBlcnJvcnMuCiAg
ICAgYm9vbCBtX2Vycm9yUmVjZWl2ZWQgeyBmYWxzZSB9OwogCi0gICAgUmVmPFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI+IG1fc291cmNlQnVmZmVyUHJpdmF0ZTsKKyAgICBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyJiBtX3NvdXJjZUJ1ZmZlclByaXZhdGU7CiAgICAgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFKiBtX3BsYXllclByaXZhdGU7CiAKICAgICAvLyAobV9tZWRp
YVR5cGUsIG1faWQpIGlzIHVuaXF1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFLmNwcAppbmRleCBiMjA1N2EyMDdlN2ZlNjdhYTZk
MzQyMWZlYzA4YjM5MWQ0NTk3NjllLi41ZDU5Y2Y4ZGFkZjMzNzVhZTMwYWU1NGRlNmFhMzBkNTEw
MzVjNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lck1TRS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJNU0UuY3BwCkBAIC03MDMsOSArNzAzLDkgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJNU0U6OnRyYWNrRGV0ZWN0ZWQoQXBwZW5kUGlwZWxpbmUmIGFwcGVuZFBp
cGVsaW4KICAgICB9CiAKICAgICBpZiAoZmlyc3RUcmFja0RldGVjdGVkKQotICAgICAgICBtX3Bs
YXliYWNrUGlwZWxpbmUtPmF0dGFjaFRyYWNrKGFwcGVuZFBpcGVsaW5lLnNvdXJjZUJ1ZmZlclBy
aXZhdGUoKSwgbmV3VHJhY2ssIGNhcHMpOworICAgICAgICBtX3BsYXliYWNrUGlwZWxpbmUtPmF0
dGFjaFRyYWNrKG1ha2VSZWYoYXBwZW5kUGlwZWxpbmUuc291cmNlQnVmZmVyUHJpdmF0ZSgpKSwg
bmV3VHJhY2ssIGNhcHMpOwogICAgIGVsc2UKLSAgICAgICAgbV9wbGF5YmFja1BpcGVsaW5lLT5y
ZWF0dGFjaFRyYWNrKGFwcGVuZFBpcGVsaW5lLnNvdXJjZUJ1ZmZlclByaXZhdGUoKSwgbmV3VHJh
Y2ssIGNhcHMpOworICAgICAgICBtX3BsYXliYWNrUGlwZWxpbmUtPnJlYXR0YWNoVHJhY2sobWFr
ZVJlZihhcHBlbmRQaXBlbGluZS5zb3VyY2VCdWZmZXJQcml2YXRlKCkpLCBuZXdUcmFjaywgY2Fw
cyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFOjpnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCAyNjllNjNjMjJlMzFjM2RmNTU3Y2Y2ZmQwMjcwZTM4MjY1ZDVmNjQ0Li5hNDIx
OGIxNzEyMTI5NDcwZTVmNzlmNzE5MTkyYWM0MDhiZjg3OTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU5LDEzICs1
OSwxMiBAQCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyKE1lZGlhU291cmNlUHJpdmF0ZUdTdAogICAgICwgbV9tZWRpYVNvdXJjZShtZWRp
YVNvdXJjZSkKICAgICAsIG1fdHlwZShjb250ZW50VHlwZSkKICAgICAsIG1fcGxheWVyUHJpdmF0
ZShwbGF5ZXJQcml2YXRlKQorICAgICwgbV9hcHBlbmRQaXBlbGluZShtYWtlVW5pcXVlUmVmPEFw
cGVuZFBpcGVsaW5lPigqdGhpcywgcGxheWVyUHJpdmF0ZSkpCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgLCBtX2xvZ2dlcihtZWRpYVNvdXJjZS0+bG9nZ2VyKCkpCiAgICAgLCBtX2xv
Z0lkZW50aWZpZXIobWVkaWFTb3VyY2UtPm5leHRTb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVyKCkp
CiAjZW5kaWYKIHsKLSAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLSAgICBtX2FwcGVu
ZFBpcGVsaW5lID0gV1RGOjptYWtlVW5pcXVlPEFwcGVuZFBpcGVsaW5lPihtYWtlUmVmKCp0aGlz
KSwgbV9wbGF5ZXJQcml2YXRlKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjpzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogY2xpZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAy
OWY3MDMyZmVkZDRjNjZkNmQ3NmU1MjBmNmZjNTU3OTBhMGM4Mjc3Li5jODY3NjliZmEwMzI5NzQ3
NmQzYTUzODAzNjIxYzExYTRlYmMzN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgog
ICAgIE1lZGlhU291cmNlUHJpdmF0ZUdTdHJlYW1lciogbV9tZWRpYVNvdXJjZTsKICAgICBDb250
ZW50VHlwZSBtX3R5cGU7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBtX3Bs
YXllclByaXZhdGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEFwcGVuZFBpcGVsaW5lPiBtX2FwcGVu
ZFBpcGVsaW5lOworICAgIFVuaXF1ZVJlZjxBcHBlbmRQaXBlbGluZT4gbV9hcHBlbmRQaXBlbGlu
ZTsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBtX3NvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRy
dWU7CiAgICAgYm9vbCBtX25vdGlmeVdoZW5SZWFkeUZvck1vcmVTYW1wbGVzID0gZmFsc2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>