<?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>238747</bug_id>
          
          <creation_ts>2022-04-04 11:12:21 -0700</creation_ts>
          <short_desc>Use Ref and RefPtr pattern when handling document close calls</short_desc>
          <delta_ts>2022-04-04 18:49:16 -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>DOM</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="Gabriel Nava Marino">gnavamarino</reporter>
          <assigned_to name="Gabriel Nava Marino">gnavamarino</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1857952</commentid>
    <comment_count>0</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-04-04 11:12:21 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857958</commentid>
    <comment_count>1</comment_count>
      <attachid>456594</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-04-04 11:19:43 -0700</bug_when>
    <thetext>Created attachment 456594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857962</commentid>
    <comment_count>2</comment_count>
      <attachid>456594</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-04-04 11:30:36 -0700</bug_when>
    <thetext>Comment on attachment 456594
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Ensure document object remains for the scope of the call.

I wonder ifs we should come up with some convention (naming or otherwise) to indicate that a caller is responsible for maintaining an external ref. Like, Document::close_mayDestroy(), or perhaps even take it a step further and require a separate type to call close()?  

Ref closer = document.closer()
closer.close()

/* can safely use document as long as closer is in scope */</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858158</commentid>
    <comment_count>3</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-04-04 17:06:01 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 456594 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=456594&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Ensure document object remains for the scope of the call.
&gt; 
&gt; I wonder ifs we should come up with some convention (naming or otherwise) to
&gt; indicate that a caller is responsible for maintaining an external ref. Like,
&gt; Document::close_mayDestroy(), or perhaps even take it a step further and
&gt; require a separate type to call close()?  
&gt; 
&gt; Ref closer = document.closer()
&gt; closer.close()
&gt; 
&gt; /* can safely use document as long as closer is in scope */

I agree this could be executed by explicit calls such above, which themselves could be enforced for example via assertions.

I can create a follow-up bug to track this suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858181</commentid>
    <comment_count>4</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-04-04 18:42:20 -0700</bug_when>
    <thetext>(In reply to Gabriel Nava Marino from comment #3)
&gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; Comment on attachment 456594 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=456594&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; &gt; +        Ensure document object remains for the scope of the call.
&gt; &gt; 
&gt; &gt; I wonder ifs we should come up with some convention (naming or otherwise) to
&gt; &gt; indicate that a caller is responsible for maintaining an external ref. Like,
&gt; &gt; Document::close_mayDestroy(), or perhaps even take it a step further and
&gt; &gt; require a separate type to call close()?  
&gt; &gt; 
&gt; &gt; Ref closer = document.closer()
&gt; &gt; closer.close()
&gt; &gt; 
&gt; &gt; /* can safely use document as long as closer is in scope */
&gt; 
&gt; I agree this could be executed by explicit calls such above, which
&gt; themselves could be enforced for example via assertions.
&gt; 
&gt; I can create a follow-up bug to track this suggestion.

https://bugs.webkit.org/show_bug.cgi?id=238780</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858187</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-04 18:48:04 -0700</bug_when>
    <thetext>Committed r292361 (249226@main): &lt;https://commits.webkit.org/249226@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456594.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858189</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-04 18:49:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/91272528&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456594</attachid>
            <date>2022-04-04 11:19:43 -0700</date>
            <delta_ts>2022-04-04 18:48:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238747-20220404111941.patch</filename>
            <type>text/plain</type>
            <size>10122</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU3ZDM1YmEzMmZmMWQ3
M2YyZDFmMmQyMDAxYjkwMGFmNWYzN2M2MS4uOGQzMTk3YjYzN2EwNWU1MTdiNTk4ZmM5MDRmZmRi
MDA1OTEwZDQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA0LTA0ICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBS
ZWYgYW5kIFJlZlB0ciBwYXR0ZXJuIHdoZW4gaGFuZGxpbmcgZG9jdW1lbnQgY2xvc2UgY2FsbHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODc0Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyZSBk
b2N1bWVudCBvYmplY3QgcmVtYWlucyBmb3IgdGhlIHNjb3BlIG9mIHRoZSBjYWxsLgorCisgICAg
ICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3RvcExvYWRp
bmcpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2xl
YXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudDo6ZmluaXNoTG9hZGluZyk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkU1ZHRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisKIDIwMjItMDQtMDQgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAg
PHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIENvbXBpbGF0aW9uIGVy
cm9yIGluIGRlYnVnIG1vZGUgYWZ0ZXIgcjI5MjI3OQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CmluZGV4IDQ1MGRlNmJiYThmZjJhMWRjZjdkYTZlN2VmNzc0N2VlYzY2N2RiM2IuLjA4Mzg1NDcz
N2RjZWQ4MjZiNzY5Y2Q4YzdjMWM5YTBmZTg4ZTVlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0wNCAgR2FicmllbCBOYXZhIE1hcmlubyAg
PGduYXZhbWFyaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgUmVmIGFuZCBSZWZQdHIgcGF0
dGVybiB3aGVuIGhhbmRsaW5nIGRvY3VtZW50IGNsb3NlIGNhbGxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg3NDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbnN1cmUgZG9jdW1lbnQgb2JqZWN0IHJl
bWFpbnMgZm9yIHRoZSBzY29wZSBvZiB0aGUgY2FsbC4KKworICAgICAgICAqIERPTUhUTUxDbGFz
c2VzLmNwcDoKKyAgICAgICAgKERPTUhUTUxEb2N1bWVudDo6Y2xvc2UpOgorCiAyMDIyLTAzLTI0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3MgZmlu
ZCgpIC8gcmV2ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1Zp
ZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0
Y2hTdXBwb3J0LmNwcAppbmRleCA2YmE3YzVmMWI4MWJjODEyODgyNWI5Yjg3Y2QyYTU1ZTYwZjYw
MTMyLi4zNTE5MWMzMDkwNGQzMDAzMTQ3NzIwOTg0ZjQxMmM4YzdiNmY3ZmNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtMTAyLDkgKzEwMiwx
MCBAQCB2b2lkIERPTVBhdGNoU3VwcG9ydDo6cGF0Y2hEb2N1bWVudChjb25zdCBTdHJpbmcmIG1h
cmt1cCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlnZXN0PiBuZXdJbmZvID0gY3JlYXRlRGlnZXN0
KCpuZXdEb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCksICZtX3VudXNlZE5vZGVzTWFwKTsKIAog
ICAgIGlmIChpbm5lclBhdGNoTm9kZSgqb2xkSW5mbywgKm5ld0luZm8pLmhhc0V4Y2VwdGlvbigp
KSB7CisgICAgICAgIFJlZiBkb2N1bWVudCB7IG1fZG9jdW1lbnQgfTsKICAgICAgICAgLy8gRmFs
bCBiYWNrIHRvIHJld3JpdGUuCi0gICAgICAgIG1fZG9jdW1lbnQud3JpdGUobnVsbHB0ciwgbWFy
a3VwKTsKLSAgICAgICAgbV9kb2N1bWVudC5jbG9zZSgpOworICAgICAgICBkb2N1bWVudC0+d3Jp
dGUobnVsbHB0ciwgbWFya3VwKTsKKyAgICAgICAgZG9jdW1lbnQtPmNsb3NlKCk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA4Nzg2YzUy
NTliODk4MDEyODM1NzQ0NTIwZmVmNTliYWMwNjRmOTU3Li5mZDllMzZjNDc1NDUyZjZmOTYzYWEy
NWQ5NmZmZmM2ZGVmYzFkY2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGlu
ZygpCiAgICAgLy8gV2UgYWx3YXlzIG5lZWQgdG8gZXhwbGljaXRseSBjYW5jZWwgdGhlIERvY3Vt
ZW50J3MgcGFyc2VyIHdoZW4gc3RvcHBpbmcgdGhlIGxvYWQuCiAgICAgLy8gT3RoZXJ3aXNlIGNh
bmNlbGxpbmcgdGhlIHBhcnNlciB3aGlsZSBzdGFydGluZyB0aGUgbmV4dCBwYWdlIGxvYWQgbWln
aHQgcmVzdWx0CiAgICAgLy8gaW4gdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMgc3VjaCBhcyBlcnJv
bmVvdXMgZXZlbnQgZGlzcGF0Y2guICggaHR0cDovL3dlYmtpdC5vcmcvYi8xMTcxMTIgKQotICAg
IGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQorICAgIGlmIChSZWZQ
dHIgZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudC0+Y2FuY2Vs
UGFyc2luZygpOwogICAgIAogICAgIHN0b3BMb2FkaW5nU3VicmVzb3VyY2VzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmZmJhZGZjMjk2YmE5ZTJiMGUzOWY1Yzhi
MDZkZWIxYjdhNWY3YzQzLi41YzQyNzA1YTUyZmU0YjZhNWI3YjkxNzcxMzBjMWMzZmM5YTYxOGMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTM0NSw3ICszNDUsOCBA
QCB2b2lkIEZyYW1lTG9hZGVyOjppbml0KCkKICAgICBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2Fk
ZXItPnN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZSgpOwogCiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0
KG1fZnJhbWUpOwotICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOworICAg
IFJlZiBkb2N1bWVudCB7ICptX2ZyYW1lLmRvY3VtZW50KCkgfTsKKyAgICBkb2N1bWVudC0+Y2Fu
Y2VsUGFyc2luZygpOwogICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0
YXRlTWFjaGluZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKIAogICAgIG1fbmV0
d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKQEAg
LTYyNiwxMiArNjI3LDEzIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKFJlZlB0cjxEb2N1bWVu
dD4mJiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpCiAgICAgbV9uZWVkc0Ns
ZWFyID0gZmFsc2U7CiAKICAgICBpZiAobmVlZGVkQ2xlYXIgJiYgbV9mcmFtZS5kb2N1bWVudCgp
LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hl
KSB7Ci0gICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwotICAgICAg
ICBtX2ZyYW1lLmRvY3VtZW50KCktPnN0b3BBY3RpdmVET01PYmplY3RzKCk7Ci0gICAgICAgIGJv
b2wgaGFkTGl2aW5nUmVuZGVyVHJlZSA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+aGFzTGl2aW5nUmVu
ZGVyVHJlZSgpOwotICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPndpbGxCZVJlbW92ZWRGcm9t
RnJhbWUoKTsKKyAgICAgICAgUmVmIGRvY3VtZW50IHsgKm1fZnJhbWUuZG9jdW1lbnQoKSB9Owor
ICAgICAgICBkb2N1bWVudC0+Y2FuY2VsUGFyc2luZygpOworICAgICAgICBkb2N1bWVudC0+c3Rv
cEFjdGl2ZURPTU9iamVjdHMoKTsKKyAgICAgICAgYm9vbCBoYWRMaXZpbmdSZW5kZXJUcmVlID0g
ZG9jdW1lbnQtPmhhc0xpdmluZ1JlbmRlclRyZWUoKTsKKyAgICAgICAgZG9jdW1lbnQtPndpbGxC
ZVJlbW92ZWRGcm9tRnJhbWUoKTsKICAgICAgICAgaWYgKGhhZExpdmluZ1JlbmRlclRyZWUpCi0g
ICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmFkanVzdEZvY3VzZWROb2RlT25Ob2RlUmVt
b3ZhbCgqbV9mcmFtZS5kb2N1bWVudCgpKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGp1c3RG
b2N1c2VkTm9kZU9uTm9kZVJlbW92YWwoZG9jdW1lbnQpOwogICAgIH0KIAogICAgIGlmIChoYW5k
bGVET01XaW5kb3dDcmVhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmluZGV4IGUzM2Y3Nzk0MGVhYjA4MmJmYjExYTg0MjExNjRk
OWZhNDc5ZDE3ODAuLjkyZjE4ZTkwZmI3OGMwNDA2Njc5YTExMGUzZjE3Y2ViYTE4OWM0MTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNw
cApAQCAtNTYsOCArNTYsOSBAQCB2b2lkIENhY2hlZFNWR0RvY3VtZW50OjpmaW5pc2hMb2FkaW5n
KGNvbnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXIqIGRhdGEsIGNvbnN0CiB7CiAgICAgaWYgKGRh
dGEpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYSBuZXcgZnJhbWUgYmVj
YXVzZSB0aGUgbmV3IGRvY3VtZW50IGJlbG9uZ3MgdG8gdGhlIHBhcmVudCBVc2VFbGVtZW50Lgot
ICAgICAgICBtX2RvY3VtZW50ID0gU1ZHRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX3NldHRp
bmdzLCByZXNwb25zZSgpLnVybCgpKTsKLSAgICAgICAgbV9kb2N1bWVudC0+c2V0Q29udGVudCht
X2RlY29kZXItPmRlY29kZUFuZEZsdXNoKGRhdGEtPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwg
ZGF0YS0+c2l6ZSgpKSk7CisgICAgICAgIGF1dG8gZG9jdW1lbnQgPSBTVkdEb2N1bWVudDo6Y3Jl
YXRlKG51bGxwdHIsIG1fc2V0dGluZ3MsIHJlc3BvbnNlKCkudXJsKCkpOworICAgICAgICBkb2N1
bWVudC0+c2V0Q29udGVudChtX2RlY29kZXItPmRlY29kZUFuZEZsdXNoKGRhdGEtPm1ha2VDb250
aWd1b3VzKCktPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKSk7CisgICAgICAgIG1fZG9jdW1lbnQgPSBX
VEZNb3ZlKGRvY3VtZW50KTsKICAgICB9CiAgICAgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRp
bmcoZGF0YSwgbWV0cmljcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRm9udC5jcHAKaW5kZXggZTJkYmI0YzY4M2NiMjc0NWQ3MmE2ODljY2Y2NmIwNmQyZjBj
OTA4Mi4uMDhjYTQ3ZTEyZDQ0MDZmYTVjZjU5YmMwNTkxNWIzODRlMjk1YTk1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcApAQCAtNzUsMTMgKzc1
LDE0IEBAIGJvb2wgQ2FjaGVkU1ZHRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRv
bVN0cmluZyYgcmVtb3RlVVJJKQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBXZSBtYXkgZ2V0
IGhlcmUgZHVyaW5nIHJlbmRlciB0cmVlIHVwZGF0ZXMgd2hlbiBldmVudHMgYXJlIGZvcmJpZGRl
bi4KICAgICAgICAgICAgIC8vIEZyYW1lbGVzcyBkb2N1bWVudCBjYW4ndCBydW4gc2NyaXB0cyBv
ciBjYWxsIGJhY2sgdG8gdGhlIGNsaWVudCBzbyB0aGlzIGlzIHNhZmUuCi0gICAgICAgICAgICBt
X2V4dGVybmFsU1ZHRG9jdW1lbnQgPSBTVkdEb2N1bWVudDo6Y3JlYXRlKG51bGxwdHIsIG1fc2V0
dGluZ3MsIFVSTCgpKTsKKyAgICAgICAgICAgIGF1dG8gZXh0ZXJuYWxTVkdEb2N1bWVudCA9IFNW
R0RvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgbV9zZXR0aW5ncywgVVJMKCkpOwogICAgICAgICAg
ICAgYXV0byBkZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlv
bi94bWwiX3MpOwogCiAgICAgICAgICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkRpc2FibGVB
c3NlcnRpb25zSW5TY29wZSBkaXNhYmxlZFNjb3BlOwogCi0gICAgICAgICAgICBtX2V4dGVybmFs
U1ZHRG9jdW1lbnQtPnNldENvbnRlbnQoZGVjb2Rlci0+ZGVjb2RlQW5kRmx1c2gobV9kYXRhLT5t
YWtlQ29udGlndW91cygpLT5kYXRhKCksIG1fZGF0YS0+c2l6ZSgpKSk7CisgICAgICAgICAgICBl
eHRlcm5hbFNWR0RvY3VtZW50LT5zZXRDb250ZW50KGRlY29kZXItPmRlY29kZUFuZEZsdXNoKG1f
ZGF0YS0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUoKSkpOwogICAgICAg
ICAgICAgc2F3RXJyb3IgPSBkZWNvZGVyLT5zYXdFcnJvcigpOworICAgICAgICAgICAgbV9leHRl
cm5hbFNWR0RvY3VtZW50ID0gV1RGTW92ZShleHRlcm5hbFNWR0RvY3VtZW50KTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmIChzYXdFcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCmluZGV4IGU1YmVmMTRiNGQ0MmMyNzhkZjVlNGM0ZGY5NDE4MTk5NjRkMTQyNDkuLjAxNTRm
NzY1YzgwNTMxZTQ0MDBjODE3MDQxYTAzOTI0NTUwZDc2OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcApAQCAtMTgwLDE4ICsxODAsMjEgQEAgRXhjZXB0aW9uT3I8RG9jdW1l
bnQqPiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgICAgICAgICAgfHwgKGlzSFRN
TCAmJiByZXNwb25zZVR5cGUoKSA9PSBSZXNwb25zZVR5cGU6OkVtcHR5U3RyaW5nKSkgewogICAg
ICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIFJlZlB0cjxEb2N1bWVudD4gcmVzcG9uc2VEb2N1bWVudDsKICAgICAgICAg
ICAgIGlmIChpc0hUTUwpCi0gICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gSFRN
TERvY3VtZW50OjpjcmVhdGUobnVsbHB0ciwgY29udGV4dC5zZXR0aW5ncygpLCBtX3Jlc3BvbnNl
LnVybCgpLCB7IH0pOworICAgICAgICAgICAgICAgIHJlc3BvbnNlRG9jdW1lbnQgPSBIVE1MRG9j
dW1lbnQ6OmNyZWF0ZShudWxscHRyLCBjb250ZXh0LnNldHRpbmdzKCksIG1fcmVzcG9uc2UudXJs
KCksIHsgfSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9yZXNwb25zZURv
Y3VtZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBjb250ZXh0LnNldHRpbmdzKCks
IG1fcmVzcG9uc2UudXJsKCkpOwotICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5vdmVy
cmlkZUxhc3RNb2RpZmllZChtX3Jlc3BvbnNlLmxhc3RNb2RpZmllZCgpKTsKLSAgICAgICAgICAg
IG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGV4dERvY3VtZW50KGNvbnRleHQpOwotICAgICAg
ICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBvbGljeShjb250ZXh0
LnNlY3VyaXR5T3JpZ2luUG9saWN5KCkpOwotICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50
LT5vdmVycmlkZU1JTUVUeXBlKG1pbWVUeXBlKTsKLSAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1
bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSk7Ci0KLSAgICAgICAgICAgIGlmICghbV9yZXNwb25zZURvY3VtZW50LT53ZWxsRm9ybWVk
KCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3VtZW50OjpjcmVh
dGUobnVsbHB0ciwgY29udGV4dC5zZXR0aW5ncygpLCBtX3Jlc3BvbnNlLnVybCgpKTsKKyAgICAg
ICAgICAgIHJlc3BvbnNlRG9jdW1lbnQtPm92ZXJyaWRlTGFzdE1vZGlmaWVkKG1fcmVzcG9uc2Uu
bGFzdE1vZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGV4
dERvY3VtZW50KGNvbnRleHQpOworICAgICAgICAgICAgcmVzcG9uc2VEb2N1bWVudC0+c2V0U2Vj
dXJpdHlPcmlnaW5Qb2xpY3koY29udGV4dC5zZWN1cml0eU9yaWdpblBvbGljeSgpKTsKKyAgICAg
ICAgICAgIHJlc3BvbnNlRG9jdW1lbnQtPm92ZXJyaWRlTUlNRVR5cGUobWltZVR5cGUpOworICAg
ICAgICAgICAgcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisKKyAgICAgICAgICAgIGlmICghcmVzcG9uc2VE
b2N1bWVudC0+d2VsbEZvcm1lZCgpKQogICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVu
dCA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbV9yZXNwb25z
ZURvY3VtZW50ID0gV1RGTW92ZShyZXNwb25zZURvY3VtZW50KTsKICAgICAgICAgfQogICAgICAg
ICBtX2NyZWF0ZWREb2N1bWVudCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vRE9NSFRNTENsYXNzZXMuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vRE9NSFRNTENsYXNzZXMuY3BwCmluZGV4IDRjMWZmNjNiZGY2OTAzZGQwMjA1M2FjYjllZjk4
ZmEwYmQzYmRjYjAuLjQ0ZjdiY2NlZjZlM2ZiMjgzODhkMzYzOGRkNDMyNjZkYmU3YTU0OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0RPTUhUTUxDbGFzc2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9ET01IVE1MQ2xhc3Nlcy5jcHAKQEAgLTM2Miw4ICsz
NjIsOCBAQCBIUkVTVUxUIERPTUhUTUxEb2N1bWVudDo6Y2xvc2UoKQogewogICAgIGlmICghbV9k
b2N1bWVudCkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKLQotICAgIG1fZG9jdW1lbnQtPmNsb3Nl
KCk7CisgICAgUmVmIGRvY3VtZW50IHsgKm1fZG9jdW1lbnQgfTsKKyAgICBkb2N1bWVudC0+Y2xv
c2UoKTsKICAgICByZXR1cm4gU19PSzsKIH0KICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>