<?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>189098</bug_id>
          
          <creation_ts>2018-08-29 14:39:44 -0700</creation_ts>
          <short_desc>Crash under WebKit: WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_1&gt;::call()</short_desc>
          <delta_ts>2018-08-29 16:41:43 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454933</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-29 14:39:44 -0700</bug_when>
    <thetext>Crash under WebKit: WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_1&gt;::call():
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   WebKit                        	0x00000002208e65c8 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_1&gt;::call() + 76
1   WebKit                        	0x00000002208e65a8 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::$_1&gt;::call() + 44
2   JavaScriptCore                	0x00000002181780f0 WTF::RunLoop::performWork() + 276
3   JavaScriptCore                	0x00000002181783b8 WTF::RunLoop::performWork(void*) + 36
4   CoreFoundation                	0x0000000210e365b8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
5   CoreFoundation                	0x0000000210e36538 __CFRunLoopDoSource0 + 88
6   CoreFoundation                	0x0000000210e35e1c __CFRunLoopDoSources0 + 176
7   CoreFoundation                	0x0000000210e30ce8 __CFRunLoopRun + 1040
8   CoreFoundation                	0x0000000210e305b8 CFRunLoopRunSpecific + 436
9   GraphicsServices              	0x00000002130a3584 GSEventRunModal + 100
10  UIKitCore                     	0x000000023df892dc UIApplicationMain + 212
11  SafariViewService             	0x000000010006a8bc main + 244
12  libdyld.dylib                 	0x00000002108f0b94 start + 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454934</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-29 14:39:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/43179891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454935</commentid>
    <comment_count>2</comment_count>
      <attachid>348434</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-29 14:46:13 -0700</bug_when>
    <thetext>Created attachment 348434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454986</commentid>
    <comment_count>3</comment_count>
      <attachid>348434</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-08-29 16:23:19 -0700</bug_when>
    <thetext>Comment on attachment 348434
Patch

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

&gt; Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.cpp:246
&gt;  

It seems that callback here is a completion handler.
There is no guarantee though that it will be called if the workQueue is stopped. Maybe it should be WTF::Function().

Also, is it fine that callback be destroyed in the main thread?
From my reading of the code, it seems ok right now since the passed callbacks are capturing weakThis, but it would be quite easy to break that assumption.

Maybe removeDataRecords should not take a callback at all.
Instead, it could create the callback itself when being called, this would remove this double weakThis check and be more future proof.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454989</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-29 16:24:43 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 348434 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=348434&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.cpp:246
&gt; &gt;  
&gt; 
&gt; It seems that callback here is a completion handler.
&gt; There is no guarantee though that it will be called if the workQueue is
&gt; stopped. Maybe it should be WTF::Function().
&gt; 
&gt; Also, is it fine that callback be destroyed in the main thread?
&gt; From my reading of the code, it seems ok right now since the passed
&gt; callbacks are capturing weakThis, but it would be quite easy to break that
&gt; assumption.
&gt; 
&gt; Maybe removeDataRecords should not take a callback at all.
&gt; Instead, it could create the callback itself when being called, this would
&gt; remove this double weakThis check and be more future proof.

If you do a WorkQueue::dispatch(c), c is *guaranteed* to run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455010</commentid>
    <comment_count>5</comment_count>
      <attachid>348434</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-29 16:41:41 -0700</bug_when>
    <thetext>Comment on attachment 348434
Patch

Clearing flags on attachment: 348434

Committed r235487: &lt;https://trac.webkit.org/changeset/235487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455011</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-29 16:41:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348434</attachid>
            <date>2018-08-29 14:46:13 -0700</date>
            <delta_ts>2018-08-29 16:41:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189098-20180829144613.patch</filename>
            <type>text/plain</type>
            <size>9337</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIyYTJiNmE3ODAwZTk0YzE3
ZTBiNTlhOGM2N2M3MWEyZmM3NDFiOTEuLjI2YzUzMDBkZDZlMDM4ZTYyMmZlMWZlMjcxYzBjYzM5
MDEzNDdiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMDgtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCB1bmRlciBXZWJLaXQ6IFdU
Rjo6RnVuY3Rpb248dm9pZCAoKT46OkNhbGxhYmxlV3JhcHBlcjxXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMoV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkICgpPiYmKTo6JF8xPjo6Y2FsbCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkwOTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQzMTc5ODkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSBjcmFzaCB3YXMgY2F1c2VkIGJ5IGltcGxpY2l0bHkgdXNpbmcgfHRoaXN8IG9uIHRo
ZSBtYWluIHRocmVhZCBieSBhY2Nlc3NpbmcgbWVtYmVyIHZhcmlhYmxlcywgZXZlbiB0aG91Z2gK
KyAgICAgICAgfHRoaXN8IGdldHMgZGVzdHJveWVkIG9uIHRoZSBzdGF0aXN0aWNzIHF1ZXVlLiBU
byBhZGRyZXNzIHRoZSBpc3N1ZSwgY2FwdHVyZSB3aGF0IHdlIG5lZWQgb24gdGhlIHN0YXRpc3Rp
Y3MKKyAgICAgICAgcXVldWUsICpiZWZvcmUqIGRpc3BhdGNoaW5nIHRvIHRoZSBtYWluIHRocmVh
ZC4KKworICAgICAgICBBbHNvIHN0b3AgY2FwdHVyaW5nIHx0aGlzfCBpbiB0aGUgbGFtYmRhcyB0
byBtYWtlIHRoaXMgbGVzcyBlcnJvciBwcm9uZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlbW92ZURhdGFSZWNvcmRzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFuZGZhdGhl
ckV4aXN0aW5nV2Vic2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNvb2tpZUJsb2NraW5nKToKKwogMjAxOC0wOC0yOSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93dXAg
KHIyMzU0MjcpOiBVc2UgdGhlIG51bGwgc3RyaW5nIGluc3RlYWQgb2Ygc3RkOjpudWxsb3B0IHdo
ZW4gbm8gc3VnZ2VzdGlvbiBpcyBzZWxlY3RlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5k
ZXggNmRmYzkxOGE1ZDFkYTZiMTM1OTgyOTYyZGYxMWVkMGIzOWJlYjAxZC4uZTU4OWY4NWJjNzUw
YjI2YzczNDVmMWYyN2ZiZjBhNzViYzFjYmRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3Bw
CkBAIC0yNDQsMjEgKzI0NCwyMSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6cmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZAogCiAgICAgc2V0
RGF0YVJlY29yZHNCZWluZ1JlbW92ZWQodHJ1ZSk7CiAKLSAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW3ByZXZhbGVudFJlc291cmNlRG9tYWlucyA9IGNyb3NzVGhyZWFkQ29weShwcmV2YWxl
bnRSZXNvdXJjZURvbWFpbnMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYlBy
b2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluc0luQWxsUGVyc2lzdGVudERhdGFTdG9yZXMoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjptb25pdG9yZWREYXRhVHlwZXMoKSwgV1RGTW92ZShwcmV2YWxlbnRSZXNvdXJjZURvbWFp
bnMpLCBtX3BhcmFtZXRlcnMuc2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRoaXMsIHdlYWtUaGlzID0gV1RG
TW92ZSh3ZWFrVGhpcyksIHdvcmtRdWV1ZSA9IG1fd29ya1F1ZXVlLmNvcHlSZWYoKV0oY29uc3Qg
SGFzaFNldDxTdHJpbmc+JiBkb21haW5zV2l0aERlbGV0ZWRXZWJzaXRlRGF0YSkgbXV0YWJsZSB7
Ci0gICAgICAgICAgICB3b3JrUXVldWUtPmRpc3BhdGNoKFt0b3BEb21haW5zID0gY3Jvc3NUaHJl
YWRDb3B5KGRvbWFpbnNXaXRoRGVsZXRlZFdlYnNpdGVEYXRhKSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKSwgdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0gKCkgbXV0YWJs
ZSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcmV2YWxlbnRSZXNvdXJjZURvbWFp
bnMgPSBjcm9zc1RocmVhZENvcHkocHJldmFsZW50UmVzb3VyY2VEb21haW5zKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKSwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHNob3Vs
ZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQgPSBtX3BhcmFtZXRlcnMuc2hv
dWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCwgd29ya1F1ZXVlID0gbV93
b3JrUXVldWUuY29weVJlZigpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5
OjpkZWxldGVXZWJzaXRlRGF0YUZvclRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zSW5BbGxQ
ZXJzaXN0ZW50RGF0YVN0b3JlcyhXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1vbml0
b3JlZERhdGFUeXBlcygpLCBXVEZNb3ZlKHByZXZhbGVudFJlc291cmNlRG9tYWlucyksIHNob3Vs
ZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQsIFtjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3b3JrUXVldWUgPSB3
b3JrUXVldWUuY29weVJlZigpXShjb25zdCBIYXNoU2V0PFN0cmluZz4mIGRvbWFpbnNXaXRoRGVs
ZXRlZFdlYnNpdGVEYXRhKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtRdWV1ZS0+ZGlzcGF0
Y2goW3RvcERvbWFpbnMgPSBjcm9zc1RocmVhZENvcHkoZG9tYWluc1dpdGhEZWxldGVkV2Vic2l0
ZURhdGEpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB3ZWFrVGhpcyA9IFdURk1vdmUo
d2Vha1RoaXMpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKSB7
CiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBwcmV2
YWxlbnRSZXNvdXJjZURvbWFpbiA6IHRvcERvbWFpbnMpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXV0byYgc3RhdGlzdGljID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFp
bihwcmV2YWxlbnRSZXNvdXJjZURvbWFpbik7CisgICAgICAgICAgICAgICAgICAgIGF1dG8mIHN0
YXRpc3RpYyA9IHdlYWtUaGlzLT5lbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9t
YWluKHByZXZhbGVudFJlc291cmNlRG9tYWluKTsKICAgICAgICAgICAgICAgICAgICAgKytzdGF0
aXN0aWMuZGF0YVJlY29yZHNSZW1vdmVkOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBzZXREYXRhUmVjb3Jkc0JlaW5nUmVtb3ZlZChmYWxzZSk7CisgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPnNldERhdGFSZWNvcmRzQmVpbmdSZW1vdmVkKGZhbHNlKTsKICAgICAgICAgICAg
ICAgICBjYWxsYmFjaygpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lORk9fSUYobV9kZWJ1Z0xvZ2dpbmdFbmFibGVkLCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWcsICJEb25lIHJlbW92aW5nIGRhdGEgcmVjb3Jkcy4iKTsKKyAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPX0lGKHdlYWtUaGlzLT5tX2RlYnVnTG9nZ2luZ0Vu
YWJsZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkRvbmUgcmVtb3ZpbmcgZGF0YSBy
ZWNvcmRzLiIpOwogI2VuZGlmCiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC01MDYs
MjUgKzUwNiwyNSBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3Jh
bmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhKENvbXBsZXRpbwogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0gKCkgbXV0YWJsZSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2hvdWxk
Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCA9IG1fcGFyYW1ldGVycy5zaG91
bGROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkLCB3b3JrUXVldWUgPSBtX3dv
cmtRdWV1ZS5jb3B5UmVmKCldICgpIG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBt
ZXRob2QgYmVpbmcgYSBzdGF0aWMgY2FsbCBvbiBXZWJQcm9jZXNzUHJveHkgaXMgd3JvbmcuCiAg
ICAgICAgIC8vIEl0IHNob3VsZCBiZSBvbiB0aGUgZGF0YSBzdG9yZSB0aGF0IHRoaXMgb2JqZWN0
IGJlbG9uZ3MgdG8uCi0gICAgICAgIFdlYlByb2Nlc3NQcm94eTo6dG9wUHJpdmF0ZWx5Q29udHJv
bGxlZERvbWFpbnNXaXRoV2Vic2l0ZURhdGEoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojptb25pdG9yZWREYXRhVHlwZXMoKSwgbV9wYXJhbWV0ZXJzLnNob3VsZE5vdGlmeVBhZ2VzV2hl
bkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQsIFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1Ro
aXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB3b3JrUXVldWUgPSBtX3dvcmtRdWV1
ZS5jb3B5UmVmKCldIChIYXNoU2V0PFN0cmluZz4mJiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluc1dpdGhXZWJzaXRlRGF0YSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrUXVldWUtPmRp
c3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB0b3BEb21haW5zID0g
Y3Jvc3NUaHJlYWRDb3B5KHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0aFdlYnNpdGVE
YXRhKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CisgICAgICAg
IFdlYlByb2Nlc3NQcm94eTo6dG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNXaXRoV2Vic2l0
ZURhdGEoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptb25pdG9yZWREYXRhVHlwZXMo
KSwgc2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCwgW3dlYWtUaGlz
ID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHdvcmtR
dWV1ZSA9IHdvcmtRdWV1ZS5jb3B5UmVmKCldIChIYXNoU2V0PFN0cmluZz4mJiB0b3BQcml2YXRl
bHlDb250cm9sbGVkRG9tYWluc1dpdGhXZWJzaXRlRGF0YSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICB3b3JrUXVldWUtPmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB0b3BE
b21haW5zID0gY3Jvc3NUaHJlYWRDb3B5KHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW5zV2l0
aFdlYnNpdGVEYXRhKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewogICAgICAgICAgICAgICAgICAgICBj
YWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9t
YWluIDogdG9wRG9tYWlucykgewotICAgICAgICAgICAgICAgICAgICBhdXRvJiBzdGF0aXN0aWMg
PSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKHRvcFByaXZhdGVseUNv
bnRyb2xsZWREb21haW4pOworICAgICAgICAgICAgICAgICAgICBhdXRvJiBzdGF0aXN0aWMgPSB3
ZWFrVGhpcy0+ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbih0b3BQcml2
YXRlbHlDb250cm9sbGVkRG9tYWluKTsKICAgICAgICAgICAgICAgICAgICAgc3RhdGlzdGljLmdy
YW5kZmF0aGVyZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBt
X2VuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCkgKyBtX3BhcmFt
ZXRlcnMuZ3JhbmRmYXRoZXJpbmdUaW1lOwotICAgICAgICAgICAgICAgIGlmIChtX3BlcnNpc3Rl
bnRTdG9yYWdlKQotICAgICAgICAgICAgICAgICAgICBtX3BlcnNpc3RlbnRTdG9yYWdlLT5zY2hl
ZHVsZU9yV3JpdGVNZW1vcnlTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0
b3JhZ2U6OkZvcmNlSW1tZWRpYXRlV3JpdGU6Olllcyk7CisgICAgICAgICAgICAgICAgd2Vha1Ro
aXMtPm1fZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKSArIHdl
YWtUaGlzLT5tX3BhcmFtZXRlcnMuZ3JhbmRmYXRoZXJpbmdUaW1lOworICAgICAgICAgICAgICAg
IGlmICh3ZWFrVGhpcy0+bV9wZXJzaXN0ZW50U3RvcmFnZSkKKyAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVkdWxlT3JXcml0ZU1lbW9yeVN0b3Jl
KFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6Rm9yY2VJbW1lZGlhdGVX
cml0ZTo6WWVzKTsKICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICAgICAgICAg
IGxvZ1Rlc3RpbmdFdmVudCgiR3JhbmRmYXRoZXJlZCJfcyk7CisgICAgICAgICAgICAgICAgd2Vh
a1RoaXMtPmxvZ1Rlc3RpbmdFdmVudCgiR3JhbmRmYXRoZXJlZCJfcyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDM5LDE0ICsxMDM5LDE0IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDb29raWVCbG9ja2luZyhDb21w
bGV0aW9uSGFuZGxlcjx2CiAgICAgaWYgKG1fZGVidWdMb2dnaW5nRW5hYmxlZCAmJiAhZG9tYWlu
c1RvQmxvY2suaXNFbXB0eSgpKQogICAgICAgICAgICAgZGVidWdMb2dEb21haW5zSW5CYXRjaGVz
KCJibG9jayIsIGRvbWFpbnNUb0Jsb2NrKTsKIAotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHN0b3JlID0gbWFrZVJlZiht
X3N0b3JlKSwgZG9tYWluc1RvQmxvY2sgPSBjcm9zc1RocmVhZENvcHkoZG9tYWluc1RvQmxvY2sp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRh
YmxlIHsKLSAgICAgICAgc3RvcmUtPmNhbGxVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nv
b2tpZXNGb3JIYW5kbGVyKGRvbWFpbnNUb0Jsb2NrLCBTaG91bGRDbGVhckZpcnN0OjpObywgW3Ro
aXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHN0b3JlID0gc3RvcmUuY29weVJlZigp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewotICAgICAgICAgICAgc3RvcmUtPnN0YXRpc3RpY3NRdWV1ZSgpLmRpc3BhdGNoKFt0aGlz
LCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHN0b3JlID0gbWFrZVJlZiht
X3N0b3JlKSwgZG9tYWluc1RvQmxvY2sgPSBjcm9zc1RocmVhZENvcHkoZG9tYWluc1RvQmxvY2sp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgc3RvcmUtPmNhbGxVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nv
b2tpZXNGb3JIYW5kbGVyKGRvbWFpbnNUb0Jsb2NrLCBTaG91bGRDbGVhckZpcnN0OjpObywgW3dl
YWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHN0b3JlID0gc3RvcmUuY29weVJlZigpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewor
ICAgICAgICAgICAgc3RvcmUtPnN0YXRpc3RpY3NRdWV1ZSgpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9
IFdURk1vdmUod2Vha1RoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lORk9fSUYobV9kZWJ1Z0xvZ2dpbmdFbmFibGVkLCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWcsICJEb25lIHVwZGF0aW5nIGNvb2tpZSBibG9ja2luZy4iKTsKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JTkZPX0lGKHdlYWtUaGlzLT5tX2RlYnVnTG9nZ2luZ0VuYWJsZWQs
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1ZywgIkRvbmUgdXBkYXRpbmcgY29va2llIGJsb2Nr
aW5nLiIpOwogI2VuZGlmCiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>