<?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>126686</bug_id>
          
          <creation_ts>2014-01-09 02:25:19 -0800</creation_ts>
          <short_desc>[SOUP] Partial file left on disk after a download fails or is cancelled in WebKit2</short_desc>
          <delta_ts>2014-01-09 08:04:58 -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>WebKit2</component>
          <version>528+ (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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965818</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-09 02:25:19 -0800</bug_when>
    <thetext>We are currently writing the downloads directly into the destination, and when a download fails or is cancelled after the destination has been decided, the partial file is left on the disk. Deleting the final file is not safe because there might be a race condition, so we can use an intermediate file like other browsers do, a file in the same directory than the target destination but with .wkdownload suffix, that is removed when the download fails or is cancelled. If the download finishes successfully the intermediate file is renamed to the final destination.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965820</commentid>
    <comment_count>1</comment_count>
      <attachid>220706</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-09 02:37:48 -0800</bug_when>
    <thetext>Created attachment 220706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965879</commentid>
    <comment_count>2</comment_count>
      <attachid>220706</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-09 07:04:15 -0800</bug_when>
    <thetext>Comment on attachment 220706
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp:313
&gt; +static gboolean writeNextChunkIdle(SoupMessage *message)
&gt; +{
&gt; +    soup_message_body_append(message-&gt;response_body, SOUP_MEMORY_STATIC, &quot;chunk&quot;, 5);
&gt; +    return FALSE;
&gt; +}
&gt; +
&gt; +static void writeNextChunk(SoupMessage *message)

Asterisks are in the wrong place here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965904</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-09 08:04:58 -0800</bug_when>
    <thetext>Committed r161555: &lt;http://trac.webkit.org/changeset/161555&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220706</attachid>
            <date>2014-01-09 02:37:48 -0800</date>
            <delta_ts>2014-01-09 07:04:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-download-partial-file.diff</filename>
            <type>text/plain</type>
            <size>14279</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5ZTFmZWY4Li4zYWEyYjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTQtMDEtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtTT1VQXSBQYXJ0aWFsIGZpbGUgbGVmdCBvbiBkaXNrIGFmdGVyIGEgZG93
bmxvYWQgZmFpbHMgb3IgaXMgY2FuY2VsbGVkIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFyZSBjdXJyZW50bHkgd3JpdGluZyB0
aGUgZG93bmxvYWRzIGRpcmVjdGx5IGludG8gdGhlCisgICAgICAgIGRlc3RpbmF0aW9uLCBhbmQg
d2hlbiBhIGRvd25sb2FkIGZhaWxzIG9yIGlzIGNhbmNlbGxlZCBhZnRlciB0aGUKKyAgICAgICAg
ZGVzdGluYXRpb24gaGFzIGJlZW4gZGVjaWRlZCwgdGhlIHBhcnRpYWwgZmlsZSBpcyBsZWZ0IG9u
IHRoZQorICAgICAgICBkaXNrLiBEZWxldGluZyB0aGUgZmluYWwgZmlsZSBpcyBub3Qgc2FmZSBi
ZWNhdXNlIHRoZXJlIG1pZ2h0IGJlIGEKKyAgICAgICAgcmFjZSBjb25kaXRpb24sIHNvIHdlIGNh
biB1c2UgYW4gaW50ZXJtZWRpYXRlIGZpbGUgbGlrZSBvdGhlcgorICAgICAgICBicm93c2VycyBk
bywgYSBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB0aGFuIHRoZSB0YXJnZXQKKyAgICAgICAg
ZGVzdGluYXRpb24gYnV0IHdpdGggLndrZG93bmxvYWQgc3VmZml4LCB0aGF0IGlzIHJlbW92ZWQg
d2hlbiB0aGUKKyAgICAgICAgZG93bmxvYWQgZmFpbHMgb3IgaXMgY2FuY2VsbGVkLiBJZiB0aGUg
ZG93bmxvYWQgZmluaXNoZXMKKyAgICAgICAgc3VjY2Vzc2Z1bGx5IHRoZSBpbnRlcm1lZGlhdGUg
ZmlsZSBpcyByZW5hbWVkIHRvIHRoZSBmaW5hbAorICAgICAgICBkZXN0aW5hdGlvbi4KKworICAg
ICAgICAqIFNoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZENsaWVudDo6ZGVsZXRlSW50ZXJtZWRpYXRlRmlsZUluTmVlZGVkKTog
RGVsZXRlCisgICAgICAgIHRoZSBpbnRlcm1kaWF0ZSBmaWxlIGlmIGl0J3MgYmVlbiBjcmVhdGVk
IGFscmVhZHkuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkQ2xpZW50Ojpkb3dubG9hZEZhaWxl
ZCk6IENhbGwgZGVsZXRlSW50ZXJtZWRpYXRlRmlsZUluTmVlZGVkLgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogRG8gbm90IGNyZWF0ZSBhCisg
ICAgICAgIFNvdXBNZXNzYWdlIGZvciB0aGUgZ2l2ZW4gUmVzb3VyY2VSZXNwb25zZSB0aGF0IGlz
IG5vdCB1c2VkLCBjYWNoZQorICAgICAgICB0aGUgUmVzb3VyY2VSZXNwb25zZSBpbnN0ZWFkLiBD
cmVhdGUgdGhlIGludGVybWVkaWF0ZSBmaWxlIGFuZCB1c2UKKyAgICAgICAgaXQgaW5zdGVhZCBv
ZiB0aGUgZmluYWwgZGVzdGluYXRpb24uCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkQ2xpZW50
OjpkaWRSZWNlaXZlRGF0YSk6IFVzZSB0aGUgY2FjaGVkCisgICAgICAgIFJlc291cmNlUmVzcG9u
c2UgZGlyZWN0bHkuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hM
b2FkaW5nKTogUmVuYW1lIHRoZQorICAgICAgICBpbnRlcm1lZGlhdGUgZmlsZSB0byB0aGUgZmlu
YWwgZGVzdGluYXRpb24gYW5kIHdyaXRlIHRoZSBtZXRhZGF0YQorICAgICAgICBpbiB0aGUgZmlu
YWwgdGFyZ2V0IGRlc3RpbmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZENsaWVudDo6
Y2FuY2VsKTogSGFuZGxlIHRoZSBkb3dubG9hZCBjYW5jZWxsYXRpb24KKyAgICAgICAgaGVyZSwg
cmVtb3ZpbmcgdGhlIGludGVybWVkaWF0ZSBmaWxlIGlzIG5lZWRlZCBhbmQgY2FuY2VsbGluZyB0
aGUKKyAgICAgICAgUmVzb3VyY2VIYW5kbGUgYW5kIHRoZSBkb3dubG9hZC4KKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRDbGllbnQ6OmhhbmRsZVJlc3BvbnNlTGF0ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpEb3dubG9hZDo6Y2FuY2VsKTogTGV0IHRoZSBjbGllbnQgaGFuZGxlIHRoZSBjYW5jZWxs
YXRpb24uCisKIDIwMTQtMDEtMDggIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFdlYktpdDIgRUZMIGJ1aWxkIGZpeCBhZnRlciByMTYxNTMwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAu
Y3BwCmluZGV4IDIwMmMxY2IuLjI4YjFkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC01OSwxNCArNTksMjIg
QEAgcHVibGljOgogICAgICAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1faGFuZGxlUmVzcG9uc2VM
YXRlcklEKTsKICAgICB9CiAKKyAgICB2b2lkIGRlbGV0ZUludGVybWVkaWF0ZUZpbGVJbk5lZWRl
ZCgpCisgICAgeworICAgICAgICBpZiAoIW1faW50ZXJtZWRpYXRlRmlsZSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgZ19maWxlX2RlbGV0ZShtX2ludGVybWVkaWF0ZUZpbGUuZ2V0KCks
IG51bGxwdHIsIG51bGxwdHIpOworICAgIH0KKwogICAgIHZvaWQgZG93bmxvYWRGYWlsZWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgeworICAgICAgICBkZWxldGVJbnRlcm1lZGlh
dGVGaWxlSW5OZWVkZWQoKTsKICAgICAgICAgbV9kb3dubG9hZC0+ZGlkRmFpbChlcnJvciwgSVBD
OjpEYXRhUmVmZXJlbmNlKCkpOwogICAgIH0KIAogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAg
ewotICAgICAgICBtX3Jlc3BvbnNlID0gYWRvcHRHUmVmKHJlc3BvbnNlLnRvU291cE1lc3NhZ2Uo
KSk7CisgICAgICAgIG1fcmVzcG9uc2UgPSByZXNwb25zZTsKICAgICAgICAgbV9kb3dubG9hZC0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAogICAgICAgICBpZiAocmVzcG9uc2UuaHR0
cFN0YXR1c0NvZGUoKSA+PSA0MDApIHsKQEAgLTgzLDggKzkxLDggQEAgcHVibGljOgogICAgICAg
ICB9CiAKICAgICAgICAgYm9vbCBvdmVyd3JpdGU7Ci0gICAgICAgIFN0cmluZyBkZXN0aW5hdGlv
blVSSSA9IG1fZG93bmxvYWQtPmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KHN1Z2dlc3RlZEZpbGVuYW1lLCBvdmVyd3JpdGUpOwotICAgICAgICBpZiAoZGVzdGluYXRpb25V
UkkuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fZGVzdGluYXRpb25VUkkgPSBtX2Rvd25sb2FkLT5k
ZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSwg
b3ZlcndyaXRlKTsKKyAgICAgICAgaWYgKG1fZGVzdGluYXRpb25VUkkuaXNFbXB0eSgpKSB7CiAj
aWYgUExBVEZPUk0oR1RLKQogICAgICAgICAgICAgR093blB0cjxjaGFyPiBidWZmZXIoZ19zdHJk
dXBfcHJpbnRmKF8oIkNhbm5vdCBkZXRlcm1pbmUgZGVzdGluYXRpb24gVVJJIGZvciBkb3dubG9h
ZCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAlcyIpLCBzdWdnZXN0ZWRGaWxlbmFtZS51dGY4KCku
ZGF0YSgpKSk7CiAgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmcm9t
VVRGOChidWZmZXIuZ2V0KCkpOwpAQCAtOTUsMjEgKzEwMywxNiBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0g
YWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3VyaShkZXN0aW5hdGlvblVSSS51dGY4KCkuZGF0YSgp
KSk7CisgICAgICAgIFN0cmluZyBpbnRlcm1lZGlhdGVVUkkgPSBtX2Rlc3RpbmF0aW9uVVJJICsg
Ii53a2Rvd25sb2FkIjsKKyAgICAgICAgbV9pbnRlcm1lZGlhdGVGaWxlID0gYWRvcHRHUmVmKGdf
ZmlsZV9uZXdfZm9yX3VyaShpbnRlcm1lZGlhdGVVUkkudXRmOCgpLmRhdGEoKSkpOwogICAgICAg
ICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7Ci0gICAgICAgIG1fb3V0cHV0U3RyZWFtID0gYWRvcHRH
UmVmKGdfZmlsZV9yZXBsYWNlKGZpbGUuZ2V0KCksIDAsIFRSVUUsIEdfRklMRV9DUkVBVEVfTk9O
RSwgMCwgJmVycm9yLm91dFB0cigpKSk7CisgICAgICAgIG1fb3V0cHV0U3RyZWFtID0gYWRvcHRH
UmVmKGdfZmlsZV9yZXBsYWNlKG1faW50ZXJtZWRpYXRlRmlsZS5nZXQoKSwgMCwgVFJVRSwgR19G
SUxFX0NSRUFURV9OT05FLCAwLCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICAgICAgaWYgKCFtX291
dHB1dFN0cmVhbSkgewogICAgICAgICAgICAgZG93bmxvYWRGYWlsZWQocGxhdGZvcm1Eb3dubG9h
ZERlc3RpbmF0aW9uRXJyb3IocmVzcG9uc2UsIGVycm9yLT5tZXNzYWdlKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBHUmVmUHRyPEdGaWxlSW5mbz4gaW5mbyA9
IGFkb3B0R1JlZihnX2ZpbGVfaW5mb19uZXcoKSk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHVyaSA9
IHJlc3BvbnNlLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgICAgIGdfZmlsZV9p
bmZvX3NldF9hdHRyaWJ1dGVfc3RyaW5nKGluZm8uZ2V0KCksICJtZXRhZGF0YTo6ZG93bmxvYWQt
dXJpIiwgdXJpKTsKLSAgICAgICAgZ19maWxlX2luZm9fc2V0X2F0dHJpYnV0ZV9zdHJpbmcoaW5m
by5nZXQoKSwgInhhdHRyOjp4ZGcub3JpZ2luLnVybCIsIHVyaSk7Ci0gICAgICAgIGdfZmlsZV9z
ZXRfYXR0cmlidXRlc19hc3luYyhmaWxlLmdldCgpLCBpbmZvLmdldCgpLCBHX0ZJTEVfUVVFUllf
SU5GT19OT05FLCBHX1BSSU9SSVRZX0RFRkFVTFQsIDAsIDAsIDApOwotCi0gICAgICAgIG1fZG93
bmxvYWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKGRlc3RpbmF0aW9uVVJJKTsKKyAgICAgICAgbV9k
b3dubG9hZC0+ZGlkQ3JlYXRlRGVzdGluYXRpb24obV9kZXN0aW5hdGlvblVSSSk7CiAgICAgfQog
CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCwgaW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLykKQEAgLTEyMyw3
ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKICAgICAg
ICAgZ19vdXRwdXRfc3RyZWFtX3dyaXRlX2FsbChHX09VVFBVVF9TVFJFQU0obV9vdXRwdXRTdHJl
YW0uZ2V0KCkpLCBkYXRhLCBsZW5ndGgsICZieXRlc1dyaXR0ZW4sIDAsICZlcnJvci5vdXRQdHIo
KSk7CiAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgZG93bmxvYWRGYWlsZWQocGxh
dGZvcm1Eb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoUmVzb3VyY2VSZXNwb25zZShtX3Jlc3BvbnNl
LmdldCgpKSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICAgICAgICAgIGRvd25sb2FkRmFpbGVkKHBs
YXRmb3JtRG93bmxvYWREZXN0aW5hdGlvbkVycm9yKG1fcmVzcG9uc2UsIGVycm9yLT5tZXNzYWdl
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV9kb3dubG9hZC0+
ZGlkUmVjZWl2ZURhdGEoYnl0ZXNXcml0dGVuKTsKQEAgLTEzMiw2ICsxMzUsMjEgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKICAg
ICB7CiAgICAgICAgIG1fb3V0cHV0U3RyZWFtID0gMDsKKworICAgICAgICBBU1NFUlQobV9pbnRl
cm1lZGlhdGVGaWxlKTsKKyAgICAgICAgR1JlZlB0cjxHRmlsZT4gZGVzdGluYXRpb25GaWxlID0g
YWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3VyaShtX2Rlc3RpbmF0aW9uVVJJLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICAgICAgR093blB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICBpZiAoIWdfZmls
ZV9tb3ZlKG1faW50ZXJtZWRpYXRlRmlsZS5nZXQoKSwgZGVzdGluYXRpb25GaWxlLmdldCgpLCBH
X0ZJTEVfQ09QWV9OT05FLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCAmZXJyb3Iub3V0UHRy
KCkpKSB7CisgICAgICAgICAgICBkb3dubG9hZEZhaWxlZChwbGF0Zm9ybURvd25sb2FkRGVzdGlu
YXRpb25FcnJvcihtX3Jlc3BvbnNlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgR1JlZlB0cjxHRmlsZUluZm8+IGluZm8gPSBhZG9w
dEdSZWYoZ19maWxlX2luZm9fbmV3KCkpOworICAgICAgICBDU3RyaW5nIHVyaSA9IG1fcmVzcG9u
c2UudXJsKCkuc3RyaW5nKCkudXRmOCgpOworICAgICAgICBnX2ZpbGVfaW5mb19zZXRfYXR0cmli
dXRlX3N0cmluZyhpbmZvLmdldCgpLCAibWV0YWRhdGE6OmRvd25sb2FkLXVyaSIsIHVyaS5kYXRh
KCkpOworICAgICAgICBnX2ZpbGVfaW5mb19zZXRfYXR0cmlidXRlX3N0cmluZyhpbmZvLmdldCgp
LCAieGF0dHI6OnhkZy5vcmlnaW4udXJsIiwgdXJpLmRhdGEoKSk7CisgICAgICAgIGdfZmlsZV9z
ZXRfYXR0cmlidXRlc19hc3luYyhkZXN0aW5hdGlvbkZpbGUuZ2V0KCksIGluZm8uZ2V0KCksIEdf
RklMRV9RVUVSWV9JTkZPX05PTkUsIEdfUFJJT1JJVFlfREVGQVVMVCwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0cik7CisKICAgICAgICAgbV9kb3dubG9hZC0+ZGlkRmluaXNoKCk7CiAgICAgfQog
CkBAIC0xNTAsNiArMTY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ICAgICB9CiAKKyAgICB2b2lkIGNhbmNlbChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQorICAgIHsK
KyAgICAgICAgaGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgZGVsZXRlSW50ZXJtZWRpYXRlRmls
ZUluTmVlZGVkKCk7CisgICAgICAgIG1fZG93bmxvYWQtPmRpZENhbmNlbChJUEM6OkRhdGFSZWZl
cmVuY2UoKSk7CisgICAgfQorCiAgICAgdm9pZCBoYW5kbGVSZXNwb25zZSgpCiAgICAgewogICAg
ICAgICBtX2hhbmRsZVJlc3BvbnNlTGF0ZXJJRCA9IDA7CkBAIC0xNjQsNyArMTg5LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBoYW5kbGVSZXNwb25zZUxhdGVyKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX3Jlc3BvbnNlKTsKKyAgICAg
ICAgQVNTRVJUKG1fcmVzcG9uc2UuaXNOdWxsKCkpOwogICAgICAgICBBU1NFUlQoIW1faGFuZGxl
UmVzcG9uc2VMYXRlcklEKTsKIAogICAgICAgICBtX2RlbGF5ZWRSZXNwb25zZSA9IHJlc3BvbnNl
OwpAQCAtMTc2LDcgKzIwMSw5IEBAIHB1YmxpYzoKIAogICAgIERvd25sb2FkKiBtX2Rvd25sb2Fk
OwogICAgIEdSZWZQdHI8R0ZpbGVPdXRwdXRTdHJlYW0+IG1fb3V0cHV0U3RyZWFtOwotICAgIEdS
ZWZQdHI8U291cE1lc3NhZ2U+IG1fcmVzcG9uc2U7CisgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jl
c3BvbnNlOworICAgIFN0cmluZyBtX2Rlc3RpbmF0aW9uVVJJOworICAgIEdSZWZQdHI8R0ZpbGU+
IG1faW50ZXJtZWRpYXRlRmlsZTsKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fZGVsYXllZFJlc3Bv
bnNlOwogICAgIHVuc2lnbmVkIG1faGFuZGxlUmVzcG9uc2VMYXRlcklEOwogfTsKQEAgLTIwNSw4
ICsyMzIsNyBAQCB2b2lkIERvd25sb2FkOjpjYW5jZWwoKQogewogICAgIGlmICghbV9yZXNvdXJj
ZUhhbmRsZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fcmVzb3VyY2VIYW5kbGUtPmNhbmNlbCgp
OwotICAgIGRpZENhbmNlbChJUEM6OkRhdGFSZWZlcmVuY2UoKSk7CisgICAgc3RhdGljX2Nhc3Q8
RG93bmxvYWRDbGllbnQqPihtX2Rvd25sb2FkQ2xpZW50LmdldCgpKS0+Y2FuY2VsKG1fcmVzb3Vy
Y2VIYW5kbGUuZ2V0KCkpOwogICAgIG1fcmVzb3VyY2VIYW5kbGUgPSAwOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWVjY2NiOC4uYmMz
Y2YzYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI4IEBACisyMDE0LTAxLTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gUGFydGlhbCBmaWxlIGxlZnQgb24gZGlz
ayBhZnRlciBhIGRvd25sb2FkIGZhaWxzIG9yIGlzIGNhbmNlbGxlZCBpbiBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2ODYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoYXQgcGFy
dGlhbCBmaWxlcyBhcmUgbm90IGxlZnQgb24gZGlzayBhZnRlciBhIGRvd25sb2FkIGhhcworICAg
ICAgICBiZWVuIGNhbmNlbGxlZCBhZnRlciB0aGUgZGVzdGluYXRpb24gaGFzIGJlZW4gZGVjaWRl
ZC4gVG8gbWFrZQorICAgICAgICBzdXJlIHRoZSBkb3dubG9hZCBpcyBjYW5jZWxsZWQgYWZ0ZXIg
dGhlIGRlc3RpbmF0aW9uIGhhcyBiZWVuCisgICAgICAgIGRlY2lkZWQgYW5kIGJlZm9yZSB0aGUg
b3BlcmF0aW9uIGZpbmlzaGVzLCB3ZSBjYW5jZWwgdGhlIGRvd25sb2FkCisgICAgICAgIGluIHRo
ZSBkZXN0aW5hdGlvbiBkZWNpZGVkIGNhbGxiYWNrLCBhbmQgd2UgdXNlIGFuIGluZmluaXRlCisg
ICAgICAgIHJlc291cmNlIHRoYXQgd3JpdGVzIGNodW5rcyB0byB0aGUgcmVzcG9uc2UgYm9keSBh
bmQgbmV2ZXIKKyAgICAgICAgY29tcGxldGVzIHRoZSBib2R5LgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3REb3dubG9hZHMuY3BwOgorICAgICAgICAoYWRk
Q29udGVudERpc3Bvc2l0aW9uSFRUUEhlYWRlclRvUmVzcG9uc2UpOiBIZWxwZXIgZnVuY3Rpb24g
dG8KKyAgICAgICAgYWRkIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIHRvIHRoZSByZXNwb25zZSBo
ZWFkZXJzLgorICAgICAgICAod3JpdGVOZXh0Q2h1bmtJZGxlKTogV3JpdGUgbmV4dCBjaHVuayB0
byByZXNwb25zZSBib2R5LgorICAgICAgICAod3JpdGVOZXh0Q2h1bmspOiBXcml0ZSBuZXh0IGNo
dW5rIGluIGFuIGlkbGUgdG8gYXZvaWQgZmxvb2RpbmcKKyAgICAgICAgdGhlIG5ldHdvcmsgd2l0
aCB0aGUgaW5pZm5pdGUgcmVzb3VyY2UuCisgICAgICAgIChzZXJ2ZXJDYWxsYmFjayk6IEFkZCBh
biBpbmlmaW5pdGUgcmVzb3VyY2UuCisgICAgICAgICh0ZXN0RG93bmxvYWRSZW1vdGVGaWxlRXJy
b3IpOiBDaGVjayB0aGF0IHBhcnRpYWwgZmlsZSBpcyBub3QKKyAgICAgICAgcHJlc2VudCBhZnRl
ciB0aGUgZG93bmxvYWQgaGFzIGJlZW4gY2FuY2VsbGVkLgorCiAyMDE0LTAxLTA4ICBTZW9ranUg
S3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgYnVp
bGQgZml4IGFmdGVyIHIxNjE1MjIuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdERvd25sb2Fkcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJHdGsvVGVzdERvd25sb2Fkcy5jcHAKaW5kZXggY2UxNTk5MC4uODE3NmQ5NyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3REb3du
bG9hZHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
RG93bmxvYWRzLmNwcApAQCAtMjIzLDEzICsyMjMsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVj
ZWl2ZWRSZXNwb25zZShXZWJLaXREb3dubG9hZCogZG93bmxvYWQpCiAgICAgewogICAgICAgICBE
b3dubG9hZFRlc3Q6OnJlY2VpdmVkUmVzcG9uc2UoZG93bmxvYWQpOwotICAgICAgICBpZiAobV9l
eHBlY3RlZEVycm9yID09IFdFQktJVF9ET1dOTE9BRF9FUlJPUl9DQU5DRUxMRURfQllfVVNFUikK
LSAgICAgICAgICAgIHdlYmtpdF9kb3dubG9hZF9jYW5jZWwoZG93bmxvYWQpOwogICAgIH0KIAog
ICAgIHZvaWQgY3JlYXRlZERlc3RpbmF0aW9uKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgY29u
c3QgY2hhciogZGVzdGluYXRpb24pCiAgICAgewotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hl
ZCgpOworICAgICAgICBpZiAobV9leHBlY3RlZEVycm9yID09IFdFQktJVF9ET1dOTE9BRF9FUlJP
Ul9DQU5DRUxMRURfQllfVVNFUikKKyAgICAgICAgICAgIHdlYmtpdF9kb3dubG9hZF9jYW5jZWwo
ZG93bmxvYWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hl
ZCgpOwogICAgIH0KIAogICAgIHZvaWQgZmFpbGVkKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwg
R0Vycm9yKiBlcnJvcikKQEAgLTI5Nyw2ICsyOTgsMjMgQEAgc3RhdGljIHZvaWQgdGVzdERvd25s
b2FkTG9jYWxGaWxlRXJyb3IoRG93bmxvYWRFcnJvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CiBzdGF0aWMgV2ViS2l0VGVzdFNlcnZlcioga1NlcnZlcjsKIHN0YXRpYyBjb25zdCBjaGFyKiBr
U2VydmVyU3VnZ2VzdGVkRmlsZW5hbWUgPSAid2Via2l0LWRvd25sb2FkZWQtZmlsZSI7CiAKK3N0
YXRpYyB2b2lkIGFkZENvbnRlbnREaXNwb3NpdGlvbkhUVFBIZWFkZXJUb1Jlc3BvbnNlKFNvdXBN
ZXNzYWdlKiBtZXNzYWdlKQoreworICAgIEdPd25QdHI8Y2hhcj4gY29udGVudERpc3Bvc2l0aW9u
KGdfc3RyZHVwX3ByaW50ZigiZmlsZW5hbWU9JXMiLCBrU2VydmVyU3VnZ2VzdGVkRmlsZW5hbWUp
KTsKKyAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfaGVh
ZGVycywgIkNvbnRlbnQtRGlzcG9zaXRpb24iLCBjb250ZW50RGlzcG9zaXRpb24uZ2V0KCkpOwor
fQorCitzdGF0aWMgZ2Jvb2xlYW4gd3JpdGVOZXh0Q2h1bmtJZGxlKFNvdXBNZXNzYWdlICptZXNz
YWdlKQoreworICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9i
b2R5LCBTT1VQX01FTU9SWV9TVEFUSUMsICJjaHVuayIsIDUpOworICAgIHJldHVybiBGQUxTRTsK
K30KKworc3RhdGljIHZvaWQgd3JpdGVOZXh0Q2h1bmsoU291cE1lc3NhZ2UgKm1lc3NhZ2UpCit7
CisgICAgZ190aW1lb3V0X2FkZCgxMDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHdy
aXRlTmV4dENodW5rSWRsZSksIG1lc3NhZ2UpOworfQorCiBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxs
YmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFy
KiBwYXRoLCBHSGFzaFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCBncG9pbnRlcikKIHsKICAg
ICBpZiAobWVzc2FnZS0+bWV0aG9kICE9IFNPVVBfTUVUSE9EX0dFVCkgewpAQCAtMzA0LDYgKzMy
MiwxNyBAQCBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIsIFNv
dXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKgogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfT0spOwor
CisgICAgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvY2FuY2VsLWFmdGVyLWRlc3RpbmF0aW9uIikp
IHsKKyAgICAgICAgLy8gVXNlIGFuIGluZmluaXRlIG1lc3NhZ2UgdG8gbWFrZSBzdXJlIGl0J3Mg
Y2FuY2VsbGVkIGJlZm9yZSBpdCBmaW5pc2hlcy4KKyAgICAgICAgc291cF9tZXNzYWdlX2hlYWRl
cnNfc2V0X2VuY29kaW5nKG1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMsIFNPVVBfRU5DT0RJTkdf
Q0hVTktFRCk7CisgICAgICAgIGFkZENvbnRlbnREaXNwb3NpdGlvbkhUVFBIZWFkZXJUb1Jlc3Bv
bnNlKG1lc3NhZ2UpOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1lc3NhZ2UsICJ3cm90ZV9o
ZWFkZXJzIiwgR19DQUxMQkFDSyh3cml0ZU5leHRDaHVuayksIG51bGxwdHIpOworICAgICAgICBn
X3NpZ25hbF9jb25uZWN0KG1lc3NhZ2UsICJ3cm90ZV9jaHVuayIsIEdfQ0FMTEJBQ0sod3JpdGVO
ZXh0Q2h1bmspLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEdPd25Q
dHI8Y2hhcj4gZmlsZVBhdGgoZ19idWlsZF9maWxlbmFtZShUZXN0OjpnZXRXZWJLaXQxVGVzdFJl
c291Y2VzRGlyKCkuZGF0YSgpLCBwYXRoLCBOVUxMKSk7CiAgICAgY2hhciogY29udGVudHM7CiAg
ICAgZ3NpemUgY29udGVudHNMZW5ndGg7CkBAIC0zMTMsMTAgKzM0Miw3IEBAIHN0YXRpYyB2b2lk
IHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2Us
IGNvbnN0IGNoYXIqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzb3VwX21lc3NhZ2Vf
c2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19PSyk7Ci0KLSAgICBHT3duUHRyPGNoYXI+
IGNvbnRlbnREaXNwb3NpdGlvbihnX3N0cmR1cF9wcmludGYoImZpbGVuYW1lPSVzIiwga1NlcnZl
clN1Z2dlc3RlZEZpbGVuYW1lKSk7Ci0gICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKG1l
c3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMsICJDb250ZW50LURpc3Bvc2l0aW9uIiwgY29udGVudERp
c3Bvc2l0aW9uLmdldCgpKTsKKyAgICBhZGRDb250ZW50RGlzcG9zaXRpb25IVFRQSGVhZGVyVG9S
ZXNwb25zZShtZXNzYWdlKTsKICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+
cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllfVEFLRSwgY29udGVudHMsIGNvbnRlbnRzTGVuZ3Ro
KTsKIAogICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2Jv
ZHkpOwpAQCAtMzc2LDcgKzQwMiw3IEBAIHN0YXRpYyB2b2lkIHRlc3REb3dubG9hZFJlbW90ZUZp
bGVFcnJvcihEb3dubG9hZEVycm9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICB0ZXN0
LT5jaGVja0Rlc3RpbmF0aW9uQW5kRGVsZXRlRmlsZShkb3dubG9hZC5nZXQoKSwgImJhciIpOwog
CiAgICAgdGVzdC0+bV9leHBlY3RlZEVycm9yID0gV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NBTkNF
TExFRF9CWV9VU0VSOwotICAgIGRvd25sb2FkID0gYWRvcHRHUmVmKHRlc3QtPmRvd25sb2FkVVJJ
QW5kV2FpdFVudGlsRmluaXNoZXMoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL3Rlc3QucGRmIikp
KTsKKyAgICBkb3dubG9hZCA9IGFkb3B0R1JlZih0ZXN0LT5kb3dubG9hZFVSSUFuZFdhaXRVbnRp
bEZpbmlzaGVzKGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9jYW5jZWwtYWZ0ZXItZGVzdGluYXRp
b24iKSkpOwogICAgIGdfYXNzZXJ0KCF3ZWJraXRfZG93bmxvYWRfZ2V0X3dlYl92aWV3KGRvd25s
b2FkLmdldCgpKSk7CiAKICAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzLnNpemUoKSwgPT0sIDQp
OwpAQCAtMzg2LDcgKzQxMiwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0RG93bmxvYWRSZW1vdGVGaWxl
RXJyb3IoRG93bmxvYWRFcnJvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3Nl
cnRfY21waW50KGV2ZW50c1szXSwgPT0sIERvd25sb2FkVGVzdDo6RmluaXNoZWQpOwogICAgIGV2
ZW50cy5jbGVhcigpOwogICAgIGdfYXNzZXJ0X2NtcGZsb2F0KHdlYmtpdF9kb3dubG9hZF9nZXRf
ZXN0aW1hdGVkX3Byb2dyZXNzKGRvd25sb2FkLmdldCgpKSwgPCwgMSk7Ci0gICAgdGVzdC0+Y2hl
Y2tEZXN0aW5hdGlvbkFuZERlbGV0ZUZpbGUoZG93bmxvYWQuZ2V0KCksIGtTZXJ2ZXJTdWdnZXN0
ZWRGaWxlbmFtZSk7CisgICAgLy8gQ2hlY2sgdGhlIGludGVybWVkaWF0ZSBmaWxlIGlzIGRlbGV0
ZWQgd2hlbiB0aGUgZG93bmxvYWQgaXMgY2FuY2VsbGVkLgorICAgIEdPd25QdHI8Y2hhcj4gaW50
ZXJtZWRpYXRlVVJJKGdfc3RyZHVwX3ByaW50ZigiJXMud2tkb3dubG9hZCIsIHdlYmtpdF9kb3du
bG9hZF9nZXRfZGVzdGluYXRpb24oZG93bmxvYWQuZ2V0KCkpKSk7CisgICAgR1JlZlB0cjxHRmls
ZT4gaW50ZXJtZWRpYXRlRmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl91cmkoaW50ZXJt
ZWRpYXRlVVJJLmdldCgpKSk7CisgICAgZ19hc3NlcnQoIWdfZmlsZV9xdWVyeV9leGlzdHMoaW50
ZXJtZWRpYXRlRmlsZS5nZXQoKSwgbnVsbHB0cikpOwogfQogCiBjbGFzcyBXZWJWaWV3RG93bmxv
YWRUZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3Qgewo=
</data>
<flag name="review"
          id="244477"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>