<?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>107702</bug_id>
          
          <creation_ts>2013-01-23 10:18:31 -0800</creation_ts>
          <short_desc>Recursion handling cancelled authentication challenges in NetworkProcess</short_desc>
          <delta_ts>2013-01-23 12:23:35 -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>Mac</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814310</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-23 10:18:31 -0800</bug_when>
    <thetext>Recursion handling cancelled authentication challenges in NetworkProcess.

A whole lot of WebKit::NetworkResourceLoader::receivedAuthenticationCancellation, which calls back in to itself via the WebCore authentication client.

Even worse, this uncovered the fact that the WebProcess resource loader never correctly gets told of the cancellation.

The fix will also include small refactoring to more intelligently clean up all resources for a loader anytime it completes, no matter what the nature of the completion is.

In radar as &lt;rdar://problem/13024541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814317</commentid>
    <comment_count>1</comment_count>
      <attachid>184257</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-23 10:24:04 -0800</bug_when>
    <thetext>Created attachment 184257
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814337</commentid>
    <comment_count>2</comment_count>
      <attachid>184257</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-23 10:36:49 -0800</bug_when>
    <thetext>Comment on attachment 184257
Patch v1

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

r=me, because this fixes a bug and is generally an improvement. I suggest addressing the below comments though.

&gt; Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp:141
&gt; +        m_handle-&gt;cancel();

I don&apos;t know if we want to call this from resourceHandleStopped(). I&apos;m pretty sure that this is super confusing, but I don&apos;t know if it&apos;s necessary given how the code is structured now.

&gt; Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp:294
&gt; +    send(Messages::WebResourceLoader::Cancel());

Can&apos;t we just send a didFail with a cancellation error? Having a cancel message from NetworkProcess to WebProcess makes one wonder who&apos;s in charge (it&apos;s normally WebKit client code that&apos;s in charge of cancellation, not NetworkProcess).

&gt; Source/WebKit2/NetworkProcess/NetworkResourceLoader.h:120
&gt; +    bool m_inProgress;

Can this be replaced with checks for m_handle being non-null?

&gt; Source/WebKit2/WebProcess/Network/WebResourceLoader.messages.in:25
&gt; +    Cancel()

As alluded to above, I&apos;d have no idea what this message means from looking at the IDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814345</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-23 10:41:19 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 184257 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=184257&amp;action=review
&gt; 
&gt; r=me, because this fixes a bug and is generally an improvement. I suggest addressing the below comments though.
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp:141
&gt; &gt; +        m_handle-&gt;cancel();
&gt; 
&gt; I don&apos;t know if we want to call this from resourceHandleStopped(). I&apos;m pretty sure that this is super confusing, but I don&apos;t know if it&apos;s necessary given how the code is structured now.

I think the cancel can be performed from the authentication-specific method, and resourceHandleStopped can just destroy the handle itself.

&gt; &gt; Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp:294
&gt; &gt; +    send(Messages::WebResourceLoader::Cancel());
&gt; 
&gt; Can&apos;t we just send a didFail with a cancellation error? Having a cancel message from NetworkProcess to WebProcess makes one wonder who&apos;s in charge (it&apos;s normally WebKit client code that&apos;s in charge of cancellation, not NetworkProcess).

This is a structural problem with the authentication APIs we build on and how authentication works in WebCore and the WebProcess... this isn&apos;t actually a &quot;did fail with an error&quot; message.  It is a command to actually perform a cancel, which is to replicate current WebProcess behavior.

&gt; &gt; Source/WebKit2/WebProcess/Network/WebResourceLoader.messages.in:25
&gt; &gt; +    Cancel()
&gt; 
&gt; As alluded to above, I&apos;d have no idea what this message means from looking at the IDL.

I agree the naming is confusing and I&apos;ll make that better.

&gt; &gt; Source/WebKit2/NetworkProcess/NetworkResourceLoader.h:120
&gt; &gt; +    bool m_inProgress;
&gt; 
&gt; Can this be replaced with checks for m_handle being non-null?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814498</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-23 12:23:35 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/140572</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184257</attachid>
            <date>2013-01-23 10:24:04 -0800</date>
            <delta_ts>2013-01-23 10:36:49 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9590</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZWZlODZiLi44NjhjNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTMtMDEtMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlY3Vyc2lvbiBoYW5kbGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gY2hhbGxlbmdl
cyBpbiBOZXR3b3JrUHJvY2VzcworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTMwMjQ1NDE+IGFu
ZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3NzAyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKwogMjAxMy0wMS0yMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0F1dG90b29sc10gUmVtb3ZlIHRoZSBDYW52YXMgUGF0aCBjb25maWd1cmF0aW9u
IG9wdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjMzQ2ZTAyLi4xNWViOGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMzAyLDYgKzMwMiw3IEBAIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VI
YW5kbGUyNWxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHlFUE5TXzE3TmV0d29ya2luZ0NvbnRleHRF
CiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9k
ZUV2CiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlNmNyZWF0ZUVQTlNfMTdOZXR3b3JraW5n
Q29udGV4dEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RVBOU18yMFJlc291cmNlSGFuZGxlQ2xpZW50
RWJiCiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5jZWxsZWRFcnJvckV2CitfX1pO
N1dlYkNvcmUxNFJlc291cmNlTG9hZGVyNmNhbmNlbEV2CiBfX1pON1dlYkNvcmUxNFNjaGVtZVJl
Z2lzdHJ5MjRyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTI3cmVnaXN0ZXJVUkxTY2hlbWVB
c05vQWNjZXNzRVJLTjNXVEY2U3RyaW5nRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU1ZTMyNWMuLmI5ZjFmZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0wMS0yMyAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVjdXJzaW9uIGhhbmRsaW5nIGNhbmNlbGxl
ZCBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2VzIGluIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMzAyNDU0MT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDc3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHR1cm5lZCBpbiB0byBib3RoIGEgYnVnIGZpeCB3aXRoIGF1dGhlbnRp
Y2F0aW9uIGFuZCBhIG1pbmltYWwgcmVmYWN0b3Jpbmcgb2YgTmV0d29ya1Jlc291cmNlTG9hZGVy
LgorCisgICAgICAgIC0gQWRkIGEgZGVidWctb25seSBmbGFnIHRvIGVuZm9yY2UgdGhhdCBhIGhh
bmRsZSBpcyBub3QgaW4gcHJvZ3Jlc3Mgd2hlbiB0aGUgbG9hZGVyJ3MgZGVzdHJ1Y3RvciBpcyBj
YWxsZWQuCisgICAgICAgIC0gUmVuYW1lIDo6c3RvcCB0byA6OnJlc291cmNlSGFuZGxlU3RvcHBl
ZAorICAgICAgICAtIE1vdmUgYWxsIGNsZWFudXAgY29kZSB0byA6OnJlc291cmNlSGFuZGxlU3Rv
cHBlZAorICAgICAgICAtIFNjaGVkdWxlIGEgcmVzb3VyY2VIYW5kbGVTdG9wcGVkIGNhbGwgd2hl
biBhbiBhdXRoZW50aWNhdGlvbiBjYW5jZWxsYXRpb24gb2NjdXJzCisgICAgICAgIC0gVGVsbCB0
aGUgV2ViUmVzb3VyY2VMb2FkZXIgdG8gY2FuY2VsIHdoZW4gYW4gYXV0aGVudGljYXRpb24gY2Fu
Y2VsbGF0aW9uIG9jY3VycworCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6On5OZXR3b3JrUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZGVyOjpwZXJmb3JtU3RvcHMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnJlc291cmNlSGFuZGxlU3RvcHBlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6cmVjZWl2ZWRBdXRoZW50aWNhdGlvbkNhbmNlbGxhdGlvbik6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIubWVzc2FnZXMuaW46CisKIDIwMTMtMDEtMjIgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUERGUGx1Z2luOiBCdWlsZCBQREZQbHVn
aW4gZXZlcnl3aGVyZSwgZW5hYmxlIGF0IHJ1bnRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDVmNTBl
ZjguLjZiNThjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDksNiArNDksOSBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogTmV0d29ya1Jlc291cmNlTG9hZGVyOjpOZXR3b3JrUmVzb3VyY2VMb2FkZXIo
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzLCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKICAgICA6IFNjaGVkdWxhYmxl
TG9hZGVyKGxvYWRQYXJhbWV0ZXJzLCBjb25uZWN0aW9uKQorI2lmbmRlZiBOREVCVUcKKyAgICAs
IG1faW5Qcm9ncmVzcyhmYWxzZSkKKyNlbmRpZgogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiB9CkBAIC01Niw2ICs1OSw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6TmV0d29ya1Jl
c291cmNlTG9hZGVyKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzCiBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6On5OZXR3b3JrUmVzb3VyY2VMb2FkZXIoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFtX2luUHJvZ3Jlc3MpOwogfQogCiBDb3JlSVBD
OjpDb25uZWN0aW9uKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbm5lY3Rpb24oKSBjb25zdApA
QCAtNzEsOCArNzUsMTEgQEAgdWludDY0X3QgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkZXN0aW5h
dGlvbklEKCkgY29uc3QKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgbV9pblByb2dy
ZXNzID0gdHJ1ZTsKKyNlbmRpZgogCi0gICAgLy8gRXhwbGljaXQgcmVmKCkgYmFsYW5jZWQgYnkg
YSBkZXJlZigpIGluIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RvcCgpCisgICAgLy8gRXhwbGlj
aXQgcmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
cmVzb3VyY2VIYW5kbGVTdG9wcGVkKCkKICAgICByZWYoKTsKICAgICAKICAgICAvLyBGSVhNRSAo
TmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1
YWwgc2V0dGluZ3MuCkBAIC0xMjAsMTYgKzEyNywyOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6cGVyZm9ybVN0b3BzKHZvaWQqKQogICAgIH0KICAgICAKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlcXVlc3RzLnNpemUoKTsgKytpKQotICAgICAgICByZXF1ZXN0c1tpXS0+c3Rv
cCgpOworICAgICAgICByZXF1ZXN0c1tpXS0+cmVzb3VyY2VIYW5kbGVTdG9wcGVkKCk7CiB9CiAK
LXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdG9wKCkKK3ZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpyZXNvdXJjZUhhbmRsZVN0b3BwZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKLSAgICAvLyBSZW1vdmUgdGhpcyBsb2FkIGlkZW50aWZpZXIgc29vbiBzbyB3ZSBj
YW4gc3RhcnQgbW9yZSBuZXR3b3JrIHJlcXVlc3RzLgorICAgIGlmIChGb3JtRGF0YSogZm9ybURh
dGEgPSBsb2FkUGFyYW1ldGVycygpLnJlcXVlc3QoKS5odHRwQm9keSgpKQorICAgICAgICBmb3Jt
RGF0YS0+cmVtb3ZlR2VuZXJhdGVkRmlsZXNJZk5lZWRlZCgpOworCisgICAgaWYgKG1faGFuZGxl
KSB7CisgICAgICAgIG1faGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgbV9oYW5kbGUgPSAwOwor
ICAgIH0KKworICAgIC8vIFRlbGwgdGhlIHNjaGVkdWxlciBhYm91dCB0aGlzIGZpbmlzaGVkIGxv
YWRlciBzb29uIHNvIGl0IGNhbiBzdGFydCBtb3JlIG5ldHdvcmsgcmVxdWVzdHMuCiAgICAgTmV0
d29ya1Byb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS5zY2hl
ZHVsZVJlbW92ZUxvYWRlcih0aGlzKTsKLSAgICAKKworI2lmbmRlZiBOREVCVUcKKyAgICBtX2lu
UHJvZ3Jlc3MgPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgLy8gRXhwbGljaXQgZGVyZWYoKSBiYWxh
bmNlZCBieSBhIHJlZigpIGluIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIC8v
IFRoaXMgbWlnaHQgY2F1c2UgdGhlIE5ldHdvcmtSZXNvdXJjZUxvYWRlciB0byBiZSBkZXN0cm95
ZWQgYW5kIHRoZXJlZm9yZSB3ZSBkbyBpdCBsYXN0LgogICAgIGRlcmVmKCk7CkBAIC0xNjQsOCAr
MTgzLDYgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICAvLyBGSVhNRSAoTmV0d29y
a1Byb2Nlc3MpOiBGb3IgdGhlIG1lbW9yeSBjYWNoZSB3ZSdsbCBuZWVkIHRvIHVwZGF0ZSB0aGUg
ZmluaXNoZWQgc3RhdHVzIG9mIHRoZSBjYWNoZWQgcmVzb3VyY2UgaGVyZS4KICAgICAvLyBTdWNo
IGJvb2trZWVwaW5nIHdpbGwgbmVlZCB0byBiZSB0aHJlYWQgc2FmZSwgYXMgdGhpcyBjYWxsYmFj
ayBpcyBoYXBwZW5pbmcgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KLSAgICBpZiAoRm9ybURhdGEq
IGZvcm1EYXRhID0gbG9hZFBhcmFtZXRlcnMoKS5yZXF1ZXN0KCkuaHR0cEJvZHkoKSkKLSAgICAg
ICAgZm9ybURhdGEtPnJlbW92ZUdlbmVyYXRlZEZpbGVzSWZOZWVkZWQoKTsKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkRmFpbFJlc291cmNlTG9hZChlcnJvcikpOwog
ICAgIHNjaGVkdWxlU3RvcE9uTWFpblRocmVhZCgpOwogfQpAQCAtMjcyLDggKzI4OSwxMCBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRBdXRoZW50aWNhdGlvbkNhbmNlbGxh
dGlvbihjb25zdCBBdXRoZW50aWNhdAogICAgIGlmIChtX2N1cnJlbnRBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS0+aWRlbnRpZmllcigpICE9IGNoYWxsZW5nZS5pZGVudGlmaWVyKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY3VycmVudEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5hdXRoZW50
aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZENhbmNlbGxhdGlvbigqbV9jdXJyZW50QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpOwogICAgIG1fY3VycmVudEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmNs
ZWFyKCk7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6Q2FuY2VsKCkp
OworICAgIHNjaGVkdWxlU3RvcE9uTWFpblRocmVhZCgpOwogfQogCiAjaWYgVVNFKFBST1RFQ1RJ
T05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggZWJmMzhlYi4uM2E4YzczZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmgKQEAgLTEwOSwxMiArMTA5LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hl
ZHVsZVN0b3BPbk1haW5UaHJlYWQoKTsKICAgICBzdGF0aWMgdm9pZCBwZXJmb3JtU3RvcHModm9p
ZCopOwogCi0gICAgdm9pZCBzdG9wKCk7CisgICAgdm9pZCByZXNvdXJjZUhhbmRsZVN0b3BwZWQo
KTsKIAogICAgIFJlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gbV9uZXR3b3JraW5nQ29u
dGV4dDsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOyAgICAK
ICAgICAKICAgICBPd25QdHI8V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2U+IG1fY3Vy
cmVudEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOworCisjaWZuZGVmIE5ERUJVRworICAgIGJvb2wg
bV9pblByb2dyZXNzOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDE1ZTAzOTYuLjUzYTY0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNjgsNiAr
NjgsMTEgQEAgdWludDY0X3QgV2ViUmVzb3VyY2VMb2FkZXI6OmRlc3RpbmF0aW9uSUQoKSBjb25z
dAogICAgIHJldHVybiBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKTsKIH0KIAordm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKCkKK3sKKyAgICBtX2NvcmVMb2FkZXItPmNhbmNlbCgpOwor
fQorCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiBwcm9wb3NlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UsIFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkKIHsKICAgICBMT0coTmV0
d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHRv
ICclcyciLCBwcm9wb3NlZFJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oCmluZGV4IDQxYzMzMjYuLmU5YWJhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC04MCw2ICs4MCw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViUmVzb3VyY2VMb2FkZXIoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4pOwogCisgICAgdm9pZCBjYW5jZWwoKTsKKwogICAgIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VX
aXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29u
c3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgsIGJv
b2wgYWxsQXRPbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgppbmRleCBkNWMwOTU5
Li4xNWY1ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCkBAIC0yMiw2ICsyMiw4
IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVyIHsKIAorICAgIENhbmNlbCgpCisK
ICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBXZSdsbCBuZWVkIG11Y2ggbW9yZSBncmFu
dWxhcml0eSBmb3IgcmVzcG9uc2UgbWVzc2FnZXMuCiAgICAgV2lsbFNlbmRSZXF1ZXN0KFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
ZGlyZWN0UmVzcG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdCkK
ICAgICBEaWRSZWNlaXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2Vy
dGlmaWNhdGVJbmZvKQo=
</data>
<flag name="review"
          id="202927"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>