<?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>191152</bug_id>
          
          <creation_ts>2018-11-01 07:35:43 -0700</creation_ts>
          <short_desc>ERROR: ResourceLoadStatisticsPersistentStorage: Unable to delete statistics file</short_desc>
          <delta_ts>2018-11-05 09:14:46 -0800</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="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Claudio Saavedra">csaavedra</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fred.wang</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474091</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-11-01 07:35:43 -0700</bug_when>
    <thetext>ERROR: ResourceLoadStatisticsPersistentStorage: Unable to delete statistics file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474092</commentid>
    <comment_count>1</comment_count>
      <attachid>353598</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-11-01 07:36:14 -0700</bug_when>
    <thetext>Created attachment 353598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474095</commentid>
    <comment_count>2</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-11-01 07:41:20 -0700</bug_when>
    <thetext>This is a speculative fix to this error that we&apos;re seeing in the WPE and GTK+ ports:

ERROR: ResourceLoadStatisticsPersistentStorage: Unable to delete statistics file: /tmp/WebKitTestRunners-l3BJR9/ResourceLoadStatistics/full_browsing_session_resourceLog.plist
../../Source/WebKit/UIProcess/ResourceLoadStatisticsPersistentStorage.cpp(311) : void WebKit::ResourceLoadStatisticsPersistentStorage::clear()

We don&apos;t have resource load statistics yet so I think that the file is not even created. Trying to remove it unconditionally when it&apos;s not necessarily created doesn&apos;t sound right to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474096</commentid>
    <comment_count>3</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-11-01 07:47:25 -0700</bug_when>
    <thetext>Do we tests for this change? Maybe we can try unskipping some service-worker tests from bug 175419 and see if that make them pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474102</commentid>
    <comment_count>4</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-11-01 08:10:53 -0700</bug_when>
    <thetext>I think those are unrelated. They all have an unrelated assertion failure below this message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474109</commentid>
    <comment_count>5</comment_count>
      <attachid>353598</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-01 08:47:41 -0700</bug_when>
    <thetext>Comment on attachment 353598
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474113</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-11-01 08:55:32 -0700</bug_when>
    <thetext>&gt; Source/WebKit/UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:310
&gt; -    if (!FileSystem::deleteFile(filePath))
&gt; +    if (FileSystem::fileExists(filePath) &amp;&amp; !FileSystem::deleteFile(filePath))

Let&apos;s say an insane attacker decides to rename the file to something else right before ResourceLoadStatisticsPersistentStorage::clear is called and then move it right back. Unclear what that would accomplish or why anyone would want to try. Supremely silly scenario. So this is a really minor point. But it makes sense to avoid pedantic TOCTOU issues when it&apos;s easy to do so. You can just flip the check:

if (!FileSystem::deleteFile(filePath) &amp;&amp; FileSystem::fileExists(filePath))
    RELEASE_LOG_ERROR(...);

As a rule, it&apos;s better to just try to do the file operation and see if it works or not, that where there&apos;s no potential for TOCTOU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474114</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-11-01 08:56:24 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #6)
&gt; that where there&apos;s no potential for TOCTOU.

I meant &quot;that way&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474116</commentid>
    <comment_count>8</comment_count>
      <attachid>353604</attachid>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-11-01 09:03:17 -0700</bug_when>
    <thetext>Created attachment 353604
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474131</commentid>
    <comment_count>9</comment_count>
      <attachid>353604</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-01 09:40:23 -0700</bug_when>
    <thetext>Comment on attachment 353604
Patch for landing

Clearing flags on attachment: 353604

Committed r237682: &lt;https://trac.webkit.org/changeset/237682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474132</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-01 09:40:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474135</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-01 09:42:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/45731874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474140</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-01 09:49:26 -0700</bug_when>
    <thetext>Did anyone test that this change didn&apos;t regress functionality on Cocoa-platforms? Access to the file system is guarded by sandbox rules and if FileSystem::fileExists(filePath) is not allowed, this code won&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474144</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-01 09:52:45 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #12)
&gt; Did anyone test that this change didn&apos;t regress functionality on
&gt; Cocoa-platforms? Access to the file system is guarded by sandbox rules and
&gt; if FileSystem::fileExists(filePath) is not allowed, this code won&apos;t work.

What are your concerns exactly? That the sandbox would allow you to delete the file but not know that it exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474147</commentid>
    <comment_count>14</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-11-01 09:57:35 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to John Wilander from comment #12)
&gt; &gt; Did anyone test that this change didn&apos;t regress functionality on
&gt; &gt; Cocoa-platforms? Access to the file system is guarded by sandbox rules and
&gt; &gt; if FileSystem::fileExists(filePath) is not allowed, this code won&apos;t work.
&gt; 
&gt; What are your concerns exactly? That the sandbox would allow you to delete
&gt; the file but not know that it exist?

No, the case where we want the RELEASE_LOG_ERROR() to happen. If the code is not allowed to call FileSystem::fileExists(filePath) we will never get the log output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474212</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-11-01 12:15:43 -0700</bug_when>
    <thetext>I&apos;m not sure I understand the concern. Are you worried that if the sandbox policy is misconfigured such that access to filePath is denied, there won&apos;t be an error message when deleting it fails? (But surely creating it would also have failed?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474219</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-11-01 12:21:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #15)
&gt; I&apos;m not sure I understand the concern. Are you worried that if the sandbox
&gt; policy is misconfigured such that access to filePath is denied, there won&apos;t
&gt; be an error message when deleting it fails? (But surely creating it would
&gt; also have failed?)

I am not super concerned either because if that were to happen, you&apos;d see sandbox violations in the logs that would already tell you that something is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474418</commentid>
    <comment_count>17</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-11-02 00:53:25 -0700</bug_when>
    <thetext>And you have plenty of other uses of the same method as well in the same class, so if you have sandboxing violations related to calling it you have other problems as well:

claudio@patanjali:~/git/gnome/WebKit/Source/WebKit/UIProcess$ grep fileExists ResourceLoadStatisticsPersistentStorage.cpp -C 3
    String storagePath = storageDirectoryPath();
    ASSERT(!storagePath.isEmpty());

    if (!FileSystem::fileExists(storagePath)) {
        if (!FileSystem::makeAllDirectories(storagePath)) {
            RELEASE_LOG_ERROR(ResourceLoadStatistics, &quot;ResourceLoadStatisticsPersistentStorage: Failed to create directory path %s&quot;, storagePath.utf8().data());
            return;
--
        String resourceLogPath = resourceLogFilePath();
        ASSERT(!resourceLogPath.isEmpty());

        if (!FileSystem::fileExists(resourceLogPath))
            return;

        m_fileMonitor = nullptr;
--
    ASSERT(!RunLoop::isMain());

    String filePath = resourceLogFilePath();
    if (filePath.isEmpty() || !FileSystem::fileExists(filePath)) {
        m_memoryStore.grandfatherExistingWebsiteData([]() { });
        monitorDirectoryForNewStatistics();
        return;
--

    stopMonitoringDisk();

    if (!FileSystem::deleteFile(filePath) &amp;&amp; FileSystem::fileExists(filePath))
        RELEASE_LOG_ERROR(ResourceLoadStatistics, &quot;ResourceLoadStatisticsPersistentStorage: Unable to delete statistics file: %s&quot;, filePath.utf8().data());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474507</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-11-02 08:52:48 -0700</bug_when>
    <thetext>(In reply to Claudio Saavedra from comment #17)
&gt;     if (!FileSystem::fileExists(storagePath)) {
&gt;         if (!FileSystem::makeAllDirectories(storagePath)) {

(I&apos;d flip checks like this, too, for the same reason.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475105</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-11-05 09:14:46 -0800</bug_when>
    <thetext>It’s annoying that we have to make this change and introduce a file system race. Even though it’s almost certainly harmless in this case.

It seems to me that on every platform it is likely that the deleteFile function implementation can tell the difference between failure because there is no file and other types of failures; it just doesn’t make this clear to the caller. We should consider changing our deleteFile function to clarify the three distinct outcomes: success, failure because no file exists, other types of failure. Then we would not need to call two functions.

Not sure what the best idiom for that is. Maybe returning an value of an enumeration type? Need to make sure that old code that thinks it returns a boolean doesn’t quietly do the wrong thing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353598</attachid>
            <date>2018-11-01 07:36:14 -0700</date>
            <delta_ts>2018-11-01 09:03:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191152-20181101163613.patch</filename>
            <type>text/plain</type>
            <size>1723</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1ZDVkYzQ4NWVlZTg5NjI4
MDFjYjYwZWFiMzhhYWMxOWE5ZDg4NTEuLjliMjgwNTRjMDgxYmJmOTdhODliZTFkMWJmNmYxY2M2
OTUzNzgwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMDEgIENsYXVkaW8g
U2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBFUlJPUjogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOiBVbmFibGUgdG8gZGVsZXRlIHN0YXRp
c3RpY3MgZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIHN0YXRpc3RpY3MgZmlsZSBpcyBub3QgY3JlYXRlZCB1bmNvbmRpdGlvbmFsbHksIHNv
CisgICAgICAgIG1ha2Ugc3VyZSBpdCBleGlzdHMgYmVmb3JlIHRyeWluZyB0byBkZWxldGUgaXQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNp
c3RlbnRTdG9yYWdlOjpjbGVhcik6CisgICAgICAgIENoZWNrIGlmIHRoZSBmaWxlIGV4aXN0cyBi
ZWZvcmUgZGVsZXRpbmcgaXQuCisKIDIwMTgtMTEtMDEgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2Fh
dmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gU2lsZW50IGEgYnVpbGQgd2Fybmlu
ZyB3aGVuIG5vdCB1c2luZyBXYXlsYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmNwcAppbmRleCAwYjkyNmQ1MTA4NTU2YTliNDIxODQ5NzFjZjlkZWYyZjg3YjIwMjg0Li4zYzk4
M2I4NzFjYTNlZTgwZjNiOTU2MDc3ZWMzODk0YWY5YjEwN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQ
ZXJzaXN0ZW50U3RvcmFnZS5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6Y2xlYXIoKQogCiAgICAgc3RvcE1vbml0b3Jp
bmdEaXNrKCk7CiAKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoZmlsZVBhdGgpKQor
ICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGZpbGVQYXRoKSAmJiAhRmlsZVN5c3RlbTo6
ZGVsZXRlRmlsZShmaWxlUGF0aCkpCiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFJlc291cmNl
TG9hZFN0YXRpc3RpY3MsICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6
IFVuYWJsZSB0byBkZWxldGUgc3RhdGlzdGljcyBmaWxlOiAlcyIsIGZpbGVQYXRoLnV0ZjgoKS5k
YXRhKCkpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353604</attachid>
            <date>2018-11-01 09:03:17 -0700</date>
            <delta_ts>2018-11-01 09:40:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191152-20181101180316.patch</filename>
            <type>text/plain</type>
            <size>1724</size>
            <attacher name="Claudio Saavedra">csaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg1ZDVkYzQ4NWVlZTg5NjI4
MDFjYjYwZWFiMzhhYWMxOWE5ZDg4NTEuLmQ3NTRiMjk4ZjkxYjdkZjY3YTI1MzZiZmU1Yjk1Yjk2
NmFkNzFlMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMDEgIENsYXVkaW8g
U2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KKworICAgICAgICBFUlJPUjogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOiBVbmFibGUgdG8gZGVsZXRlIHN0YXRp
c3RpY3MgZmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxMTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAg
VGhlIHN0YXRpc3RpY3MgZmlsZSBpcyBub3QgY3JlYXRlZCB1bmNvbmRpdGlvbmFsbHksIHNvCisg
ICAgICAgIG1ha2Ugc3VyZSBpdCBleGlzdHMgYmVmb3JlIGxvZ2dpbmcgYW4gZXJyb3IuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlOjpjbGVhcik6CisgICAgICAgIENoZWNrIHRoYXQgdGhlIGZpbGUgZXhpc3RzIGJlZm9y
ZSBsb2dnaW5nIGFuIGVycm9yLgorCiAyMDE4LTExLTAxICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3Nh
YXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdIFNpbGVudCBhIGJ1aWxkIHdhcm5p
bmcgd2hlbiBub3QgdXNpbmcgV2F5bGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFn
ZS5jcHAKaW5kZXggMGI5MjZkNTEwODU1NmE5YjQyMTg0OTcxY2Y5ZGVmMmY4N2IyMDI4NC4uNmY4
NWQzNmY5NDdhYzIxNjQ1MGY3NWMwNTM1ODU2NTY4Njc4NGFmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2UuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OmNsZWFyKCkKIAogICAgIHN0b3BNb25pdG9y
aW5nRGlzaygpOwogCi0gICAgaWYgKCFGaWxlU3lzdGVtOjpkZWxldGVGaWxlKGZpbGVQYXRoKSkK
KyAgICBpZiAoIUZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoZmlsZVBhdGgpICYmIEZpbGVTeXN0ZW06
OmZpbGVFeGlzdHMoZmlsZVBhdGgpKQogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLCAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdl
OiBVbmFibGUgdG8gZGVsZXRlIHN0YXRpc3RpY3MgZmlsZTogJXMiLCBmaWxlUGF0aC51dGY4KCku
ZGF0YSgpKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>