<?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>154298</bug_id>
          
          <creation_ts>2016-02-16 11:11:35 -0800</creation_ts>
          <short_desc>Add checks before redirecting with NetworkSession</short_desc>
          <delta_ts>2016-02-16 13:28:28 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165194</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-16 11:11:35 -0800</bug_when>
    <thetext>Add checks before redirecting with NetworkSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165201</commentid>
    <comment_count>1</comment_count>
      <attachid>271449</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-16 11:17:39 -0800</bug_when>
    <thetext>Created attachment 271449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165276</commentid>
    <comment_count>2</comment_count>
      <attachid>271449</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-02-16 12:57:50 -0800</bug_when>
    <thetext>Comment on attachment 271449
Patch

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

&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:102
&gt; +    if (!request.url().protocolIs(&quot;https&quot;) &amp;&amp; WebCore::protocolIs(request.httpReferrer(), &quot;https&quot;) &amp;&amp; m_shouldClearReferrerOnHTTPSToHTTPRedirect)

You should probably put the fastest part of this check (checking m_shouldClearReferrerOnHTTPSToHTTPRedirect) first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165283</commentid>
    <comment_count>3</comment_count>
      <attachid>271449</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-02-16 13:14:38 -0800</bug_when>
    <thetext>Comment on attachment 271449
Patch

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

&gt; Source/WebKit2/ChangeLog:20
&gt; +        1. When using NSURLConnection, the last http method and the current http method are not always equal, and this
&gt; +        check needs to change the current http method to match the last http method when being redirected with an http
&gt; +        status code 307.  When using NSURLSession, the current http method is already updated properly.

Can you assert that it didn&apos;t change?

&gt; Source/WebKit2/NetworkProcess/NetworkDataTask.h:114
&gt; +    void willPerformHTTPRedirection(const WebCore::ResourceResponse, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler);

Do you really mean to pass ResourceResponse by value?

&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:93
&gt; +        if (!equalLettersIgnoringASCIICase(m_lastHTTPMethod, &quot;get&quot;) &amp;&amp; body &amp;&amp; !body-&gt;isEmpty())

If you reordered the operands in the if expression to check body &amp;&amp; !body-&gt;isEmpty() first, we&apos;d be able to sometimes skip the more expensive string comparison.

&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:117
&gt; +    

Could you add a FIXME here for implementing the credential storage bits?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165285</commentid>
    <comment_count>4</comment_count>
      <attachid>271449</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-16 13:17:15 -0800</bug_when>
    <thetext>Comment on attachment 271449
Patch

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

&gt;&gt; Source/WebKit2/NetworkProcess/NetworkDataTask.h:114
&gt;&gt; +    void willPerformHTTPRedirection(const WebCore::ResourceResponse, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler);
&gt; 
&gt; Do you really mean to pass ResourceResponse by value?

No.  Will fix.

&gt;&gt; Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:117
&gt;&gt; +    
&gt; 
&gt; Could you add a FIXME here for implementing the credential storage bits?

We don&apos;t want to use a CredentialStorage if we can get away with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165290</commentid>
    <comment_count>5</comment_count>
      <attachid>271449</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-02-16 13:27:27 -0800</bug_when>
    <thetext>Comment on attachment 271449
Patch

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

&gt;&gt;&gt; Source/WebKit2/NetworkProcess/NetworkDataTask.h:114
&gt;&gt;&gt; +    void willPerformHTTPRedirection(const WebCore::ResourceResponse, WebCore::ResourceRequest&amp;&amp;, RedirectCompletionHandler);
&gt;&gt; 
&gt;&gt; Do you really mean to pass ResourceResponse by value?
&gt; 
&gt; No.  Will fix.

You should still change it, but I guess in this case it doesn&apos;t actually matter. We&apos;re passing a NSHTTPURLResponse * into this function, so in either case we&apos;ll only construct one ResourceResponse (either a temporary that is bound to a const reference or the argument value).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165291</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-16 13:28:22 -0800</bug_when>
    <thetext>Done.  It&apos;s a reference now.
http://trac.webkit.org/changeset/196656</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271449</attachid>
            <date>2016-02-16 11:17:39 -0800</date>
            <delta_ts>2016-02-16 13:14:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154298-20160216111719.patch</filename>
            <type>text/plain</type>
            <size>11261</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjU5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE2LTAyLTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGNoZWNr
cyBiZWZvcmUgcmVkaXJlY3Rpbmcgd2l0aCBOZXR3b3JrU2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0Mjk4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBmaXhlcyBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVjdC0zMDcuaHRtbCBhbmQgCisgICAgICAgIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wb3N0LTMwNy1yZXNwb25zZS5odG1sIHdoZW4gdXNpbmcgTmV0d29ya1Nl
c3Npb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
aDoKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgc29tZSBmdW5jdGlvbnMgbmV3bHkgdXNlZCBpbiBX
ZWJLaXQyLgorCiAyMDE2LTAyLTE1ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVmaW5lIFNpbXVsYXRlZE1vdXNlRXZlbnQgdG8gc3VwcG9ydCBFdmVudC5p
c1RydXN0ZWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCShyZXZpc2lvbiAxOTY1OTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAkod29ya2luZyBjb3B5
KQpAQCAtOTMsMTkgKzkzLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdGVtcGxh
dGU8c2l6ZV90IGxlbmd0aD4gdm9pZCBzZXRIVFRQSGVhZGVyRmllbGQoY29uc3QgY2hhciAoJilb
bGVuZ3RoXSwgY29uc3QgU3RyaW5nJikgPSBkZWxldGU7CiAgICAgICAgIHRlbXBsYXRlPHNpemVf
dCBsZW5ndGg+IHZvaWQgYWRkSFRUUEhlYWRlckZpZWxkKGNvbnN0IGNoYXIgKCYpW2xlbmd0aF0s
IGNvbnN0IFN0cmluZyYpID0gZGVsZXRlOwogCi0gICAgICAgIHZvaWQgY2xlYXJIVFRQQXV0aG9y
aXphdGlvbigpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFySFRUUEF1dGhvcml6
YXRpb24oKTsKIAogICAgICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaHR0cENvbnRlbnRUeXBl
KCkgY29uc3Q7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SFRUUENvbnRlbnRUeXBl
KGNvbnN0IFN0cmluZyYpOwogICAgICAgICB2b2lkIGNsZWFySFRUUENvbnRlbnRUeXBlKCk7CiAK
LSAgICAgICAgU3RyaW5nIGh0dHBSZWZlcnJlcigpIGNvbnN0OworICAgICAgICBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgaHR0cFJlZmVycmVyKCkgY29uc3Q7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0SFRUUFJlZmVycmVyKGNvbnN0IFN0cmluZyYpOwotICAgICAgICB2b2lkIGNsZWFy
SFRUUFJlZmVycmVyKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJIVFRQUmVm
ZXJyZXIoKTsKICAgICAgICAgCiAgICAgICAgIFN0cmluZyBodHRwT3JpZ2luKCkgY29uc3Q7CiAg
ICAgICAgIHZvaWQgc2V0SFRUUE9yaWdpbihjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgdm9pZCBj
bGVhckhUVFBPcmlnaW4oKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckhUVFBP
cmlnaW4oKTsKIAogICAgICAgICBTdHJpbmcgaHR0cFVzZXJBZ2VudCgpIGNvbnN0OwogICAgICAg
ICB2b2lkIHNldEhUVFBVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxOTY2NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyOSBAQAorMjAxNi0wMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBjaGVja3MgYmVmb3JlIHJlZGlyZWN0
aW5nIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrOjpzZXRQZW5kaW5nRG93bmxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6Ok5l
dHdvcmtMb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0
YVRhc2spOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6On5OZXR3b3JrRGF0YVRh
c2spOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OndpbGxQZXJmb3JtSFRUUFJl
ZGlyZWN0aW9uKToKKyAgICAgICAgSW1wbGVtZW50ZWQgYmFzZWQgb24gUmVzb3VyY2VIYW5kbGU6
OndpbGxTZW5kUmVxdWVzdCBidXQgd2l0aCB0d28gbm90YWJsZSBleGNlcHRpb25zOgorICAgICAg
ICAxLiBXaGVuIHVzaW5nIE5TVVJMQ29ubmVjdGlvbiwgdGhlIGxhc3QgaHR0cCBtZXRob2QgYW5k
IHRoZSBjdXJyZW50IGh0dHAgbWV0aG9kIGFyZSBub3QgYWx3YXlzIGVxdWFsLCBhbmQgdGhpcwor
ICAgICAgICBjaGVjayBuZWVkcyB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgaHR0cCBtZXRob2QgdG8g
bWF0Y2ggdGhlIGxhc3QgaHR0cCBtZXRob2Qgd2hlbiBiZWluZyByZWRpcmVjdGVkIHdpdGggYW4g
aHR0cAorICAgICAgICBzdGF0dXMgY29kZSAzMDcuICBXaGVuIHVzaW5nIE5TVVJMU2Vzc2lvbiwg
dGhlIGN1cnJlbnQgaHR0cCBtZXRob2QgaXMgYWxyZWFkeSB1cGRhdGVkIHByb3Blcmx5LgorICAg
ICAgICAyLiBJIGRpZCBub3QgY29weSB0aGUgcGFydCBvZiBSZXNvdXJjZUhhbmRsZTo6d2lsbFNl
bmRSZXF1ZXN0IHRoYXQgdXNlcyBhIENyZWRlbnRpYWxTdG9yYWdlLiAgSSdtIHRyeWluZyB0byBh
dm9pZAorICAgICAgICB1c2luZyBDcmVkZW50aWFsU3RvcmFnZXMgd2l0aCBOU1VSTFNlc3Npb24u
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6c2NoZWR1bGVGYWlsdXJlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAg
ICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vzc2lvbjp0YXNrOndpbGxQZXJm
b3JtSFRUUFJlZGlyZWN0aW9uOm5ld1JlcXVlc3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIw
MTYtMDItMTYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbTWFjXVtjbWFrZV0gVW5yZXZpZXdlZCBidWlsZGZpeCBhZnRlciByMTk2NDg4LiBKdXN0IGZv
ciBmdW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2suaAkocmV2aXNpb24gMTk2NjA5KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlSGFuZGxlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVy
T3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTgwLDkgKzgxLDkgQEAgcHVibGljOgogY2xhc3Mg
TmV0d29ya0RhdGFUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya0RhdGFUYXNrPiB7CiAg
ICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmKQorICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxz
LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCBy
ZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFscywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJl
cXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzLCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBz
dXNwZW5kKCk7CkBAIC0xMTAsOSArMTExLDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9wZW5kaW5n
RG93bmxvYWQgPSAmcGVuZGluZ0Rvd25sb2FkOwogICAgIH0KICAgICBib29sIHRyeVBhc3N3b3Jk
QmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIHdpbGxQZXJmb3JtSFRU
UFJlZGlyZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyKTsKICAgICAKIHByaXZh
dGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHMsIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSk7CisgICAgTmV0d29y
a0RhdGFUYXNrKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0KTsKICAgICAKICAgICBlbnVtIEZhaWx1cmVUeXBlIHsKICAgICAg
ICAgTm9GYWlsdXJlLApAQCAtMTMwLDYgKzEzMiw5IEBAIHByaXZhdGU6CiAgICAgRG93bmxvYWRJ
RCBtX3BlbmRpbmdEb3dubG9hZElEOwogICAgIFN0cmluZyBtX3VzZXI7CiAgICAgU3RyaW5nIG1f
cGFzc3dvcmQ7CisgICAgU3RyaW5nIG1fbGFzdEhUVFBNZXRob2Q7CisgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG1fZmlyc3RSZXF1ZXN0OworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFp
blB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4gbV90YXNrOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCShyZXZpc2lvbiAxOTY2
MDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgTmV0d29ya0xvYWQ6Ok5ldHdvcmtMb2FkKE5l
dHdvcmtMb2FkQ2xpZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChhdXRvKiBuZXR3
b3JrU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpuZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNl
c3Npb25JRCkpIHsKLSAgICAgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoKm5l
dHdvcmtTZXNzaW9uLCAqdGhpcywgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5KTsKKyAg
ICAgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoKm5ldHdvcmtTZXNzaW9uLCAq
dGhpcywgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlh
bHMsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogICAgICAgICBpZiAoIXBhcmFtZXRl
cnMuZGVmZXJzTG9hZGluZykKICAgICAgICAgICAgIG1fdGFzay0+cmVzdW1lKCk7CiAgICAgfSBl
bHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQkocmV2aXNpb24gMTk2NjA5KQorKysgU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzIHN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hv
dWxkQ29udGVudFNuaWZmKQorTmV0d29ya0RhdGFUYXNrOjpOZXR3b3JrRGF0YVRhc2soTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpDb250ZW50U25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgOiBtX2ZhaWx1cmVUaW1lcigqdGhpcywgJk5ldHdv
cmtEYXRhVGFzazo6ZmFpbHVyZVRpbWVyRmlyZWQpCiAgICAgLCBtX3Nlc3Npb24oc2Vzc2lvbikK
ICAgICAsIG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fbGFzdEhUVFBNZXRob2QocmVxdWVzdFdp
dGhDcmVkZW50aWFscy5odHRwTWV0aG9kKCkpCisgICAgLCBtX2ZpcnN0UmVxdWVzdChyZXF1ZXN0
V2l0aENyZWRlbnRpYWxzKQorICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAKQEAgLTgzLDYgKzg2LDM4IEBAIE5ldHdv
cmtEYXRhVGFzazo6fk5ldHdvcmtEYXRhVGFzaygpCiAgICAgfQogfQogCit2b2lkIE5ldHdvcmtE
YXRhVGFzazo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gMzA3KSB7CisgICAg
ICAgIFdlYkNvcmU6OkZvcm1EYXRhKiBib2R5ID0gbV9maXJzdFJlcXVlc3QuaHR0cEJvZHkoKTsK
KyAgICAgICAgaWYgKCFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtX2xhc3RIVFRQTWV0
aG9kLCAiZ2V0IikgJiYgYm9keSAmJiAhYm9keS0+aXNFbXB0eSgpKQorICAgICAgICAgICAgcmVx
dWVzdC5zZXRIVFRQQm9keShib2R5KTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBvcmlnaW5h
bENvbnRlbnRUeXBlID0gbV9maXJzdFJlcXVlc3QuaHR0cENvbnRlbnRUeXBlKCk7CisgICAgICAg
IGlmICghb3JpZ2luYWxDb250ZW50VHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXF1ZXN0
LnNldEhUVFBIZWFkZXJGaWVsZChXZWJDb3JlOjpIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUs
IG9yaWdpbmFsQ29udGVudFR5cGUpOworICAgIH0KKyAgICAKKyAgICAvLyBTaG91bGQgbm90IHNl
dCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24t
c2VjdXJlIG9uZS4KKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAm
JiBXZWJDb3JlOjpwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYm
IG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICAgICAgcmVx
dWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOworICAgIAorICAgIGNvbnN0IGF1dG8mIHVybCA9IHJl
cXVlc3QudXJsKCk7CisgICAgbV91c2VyID0gdXJsLnVzZXIoKTsKKyAgICBtX3Bhc3N3b3JkID0g
dXJsLnBhc3MoKTsKKyAgICBtX2xhc3RIVFRQTWV0aG9kID0gcmVxdWVzdC5odHRwTWV0aG9kKCk7
CisgICAgcmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOworICAgIAorICAgIGlmICghcHJvdG9j
b2xIb3N0QW5kUG9ydEFyZUVxdWFsKHJlcXVlc3QudXJsKCksIHJlZGlyZWN0UmVzcG9uc2UudXJs
KCkpKSB7CisgICAgICAgIC8vIFRoZSBuZXR3b3JrIGxheWVyIG1pZ2h0IGNhcnJ5IG92ZXIgc29t
ZSBoZWFkZXJzIGZyb20gdGhlIG9yaWdpbmFsIHJlcXVlc3QgdGhhdAorICAgICAgICAvLyB3ZSB3
YW50IHRvIHN0cmlwIGhlcmUgYmVjYXVzZSB0aGUgcmVkaXJlY3QgaXMgY3Jvc3Mtb3JpZ2luLgor
ICAgICAgICByZXF1ZXN0LmNsZWFySFRUUEF1dGhvcml6YXRpb24oKTsKKyAgICAgICAgcmVxdWVz
dC5jbGVhckhUVFBPcmlnaW4oKTsKKyAgICB9CisgICAgCisgICAgY2xpZW50KCkud2lsbFBlcmZv
cm1IVFRQUmVkaXJlY3Rpb24ocmVkaXJlY3RSZXNwb25zZSwgcmVxdWVzdCwgY29tcGxldGlvbkhh
bmRsZXIpOworfQorICAgIAogdm9pZCBOZXR3b3JrRGF0YVRhc2s6OnNjaGVkdWxlRmFpbHVyZShG
YWlsdXJlVHlwZSB0eXBlKQogewogICAgIEFTU0VSVCh0eXBlICE9IE5vRmFpbHVyZSk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0JKHJldmlzaW9uIDE5NjU5OCkKKysrIFNvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEwNSw3ICsxMDUsNyBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAq
KXNlc3NpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IF9zZXNzaW9uLT5kYXRh
VGFza0ZvcklkZW50aWZpZXIodGFzay50YXNrSWRlbnRpZmllcikpIHsKICAgICAgICAgYXV0byBj
b21wbGV0aW9uSGFuZGxlckNvcHkgPSBCbG9ja19jb3B5KGNvbXBsZXRpb25IYW5kbGVyKTsKLSAg
ICAgICAgbmV0d29ya0RhdGFUYXNrLT5jbGllbnQoKS53aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlv
bihyZXNwb25zZSwgcmVxdWVzdCwgW2NvbXBsZXRpb25IYW5kbGVyQ29weV0oY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSB7CisgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+
d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24ocmVzcG9uc2UsIHJlcXVlc3QsIFtjb21wbGV0aW9u
SGFuZGxlckNvcHldKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJDb3B5KHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdl
YkNvcmU6OlVwZGF0ZUhUVFBCb2R5KSk7CiAgICAgICAgICAgICBCbG9ja19yZWxlYXNlKGNvbXBs
ZXRpb25IYW5kbGVyQ29weSk7CiAgICAgICAgIH0pOwo=
</data>
<flag name="review"
          id="296262"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
      

    </bug>

</bugzilla>