<?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>120718</bug_id>
          
          <creation_ts>2013-09-04 19:04:27 -0700</creation_ts>
          <short_desc>Vector::releaseBuffer should return an OwnPtr</short_desc>
          <delta_ts>2013-09-06 10:05:48 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>924735</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-04 19:04:27 -0700</bug_when>
    <thetext>Vector::releaseBuffer should return an OwnPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924737</commentid>
    <comment_count>1</comment_count>
      <attachid>210538</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-04 19:11:30 -0700</bug_when>
    <thetext>Created attachment 210538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924738</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-04 19:12:37 -0700</bug_when>
    <thetext>Attachment 210538 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Vector.h&apos;, u&apos;Source/WTF/wtf/text/StringBuffer.h&apos;, u&apos;Source/WTF/wtf/text/StringImpl.h&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/network/cf/FormDataStreamCFNet.cpp&apos;]&quot; exit_code: 1
Source/WTF/wtf/Vector.h:311:  The return type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WTF/wtf/Vector.h:491:  The return type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Source/WTF/wtf/Vector.h:669:  The return type should use PassOwnPtr instead of OwnPtr.  [readability/pass_ptr] [5]
Total errors found: 3 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>924739</commentid>
    <comment_count>3</comment_count>
      <attachid>210538</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-04 19:15:28 -0700</bug_when>
    <thetext>Comment on attachment 210538
Patch

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

r=me

&gt; Source/WTF/ChangeLog:9
&gt; +        Change Vector::releaseBuffer() to return an OwnPtr. I intentionally chose
&gt; +        to use an OwnPtr over a PassOwnPtr since we&apos;re trying to move away from PassOwnPtr objects.

The future is now!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925040</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-05 08:20:18 -0700</bug_when>
    <thetext>Committed r155121: &lt;http://trac.webkit.org/changeset/155121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925073</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-09-05 09:21:38 -0700</bug_when>
    <thetext>FYI, It broke everything everywhere:
- Apple Windows: http://build.webkit.org/builders/Apple%20Win%207%20Release%20%28Tests%29/builds/38030
- GTK: http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release/builds/40434
- Qt: http://build.webkit.org/builders/Qt%20Linux%20Release/builds/62669
- Maybe EFL too, but EFL bots haven&apos;t picked this revision up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925330</commentid>
    <comment_count>6</comment_count>
      <attachid>210538</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-05 17:59:41 -0700</bug_when>
    <thetext>Comment on attachment 210538
Patch

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

&gt; Source/WTF/wtf/Vector.h:316
&gt; +        return adoptPtr(buffer);

This doesn’t seem write. If this was allocated with new, then adoptPtr makes sense, or if it was array new, then adoptArrayPtr makes sense. But I don’t think we have an adopt function that is designed to work with fastMalloc’d memory.

&gt; Source/WTF/wtf/Vector.h:1164
&gt; +        buffer = adoptPtr(static_cast&lt;T*&gt;(fastMalloc(bytes)));

This doesn’t look safe. Can we allocate something with fastMalloc and then delete it with delete and expect it to work?

&gt; Source/WTF/wtf/text/StringBuffer.h:47
&gt; +        m_data = adoptPtr(static_cast&lt;CharType*&gt;(fastMalloc(m_length * sizeof(CharType))));

Ditto.

&gt; Source/WTF/wtf/text/StringBuffer.h:65
&gt; +            m_data = adoptPtr(static_cast&lt;UChar*&gt;(fastRealloc(m_data.release().leakPtr(), newLength * sizeof(UChar))));

Ditto.

&gt; Source/WTF/wtf/text/StringBuffer.h:82
&gt; +        OwnPtr&lt;CharType&gt; data = m_data.release();
&gt; +        return data.release();

Why the local variable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925331</commentid>
    <comment_count>7</comment_count>
      <attachid>210538</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-05 18:00:04 -0700</bug_when>
    <thetext>Comment on attachment 210538
Patch

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

&gt;&gt; Source/WTF/wtf/Vector.h:316
&gt;&gt; +        return adoptPtr(buffer);
&gt; 
&gt; This doesn’t seem write. If this was allocated with new, then adoptPtr makes sense, or if it was array new, then adoptArrayPtr makes sense. But I don’t think we have an adopt function that is designed to work with fastMalloc’d memory.

s/write/right/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925696</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-06 10:05:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 210538 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210538&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Vector.h:316
&gt; &gt; +        return adoptPtr(buffer);
&gt; 
&gt; This doesn’t seem write. If this was allocated with new, then adoptPtr makes sense, or if it was array new, then adoptArrayPtr makes sense. But I don’t think we have an adopt function that is designed to work with fastMalloc’d memory.

Yeah this is completely wrong. What we need is a smart pointer for fastMalloced memory. (Or we could just use new/delete).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210538</attachid>
            <date>2013-09-04 19:11:30 -0700</date>
            <delta_ts>2013-09-05 18:00:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120718-20130904191129.patch</filename>
            <type>text/plain</type>
            <size>10673</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU1MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGY5MDEzODJhNDIxYTk0OTc2Y2E0MDRj
ZjhhZWI3ODU1OTA4MjMyMTMuLmQ2NGUyM2M1NmQ2ODlkZmJjNDljMzlhMDBkMjQ4MjJkYmNjNDhl
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTMtMDktMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBWZWN0b3I6OnJlbGVhc2VCdWZmZXIgc2hvdWxk
IHJldHVybiBhbiBPd25QdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMDcxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENoYW5nZSBWZWN0b3I6OnJlbGVhc2VCdWZmZXIoKSB0byByZXR1cm4gYW4gT3du
UHRyLiBJIGludGVudGlvbmFsbHkgY2hvc2UKKyAgICAgICAgdG8gdXNlIGFuIE93blB0ciBvdmVy
IGEgUGFzc093blB0ciBzaW5jZSB3ZSdyZSB0cnlpbmcgdG8gbW92ZSBhd2F5IGZyb20gUGFzc093
blB0ciBvYmplY3RzLgorICAgICAgICAKKyAgICAgICAgRml4IGZhbGxvdXQgZnJvbSB0aGlzIGNo
YW5nZSBieSBhZG9wdGluZyBPd25QdHIvUGFzc093blB0ciBpbiBTdHJpbmdCdWZmZXIgYW5kIHRo
ZSB0d28gU3RyaW5nSW1wbAorICAgICAgICBjb25zdHJ1Y3RvcnMgdGhhdCBhZG9wdCB0aGUgcGFz
c2VkIGluIHBvaW50ZXIuCisKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgICogd3Rm
L3RleHQvU3RyaW5nQnVmZmVyLmg6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgor
CisyMDEzLTA5LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAg
ICAgICAgRGUtaW5kZW50IFZlY3Rvci5oLgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFu
ZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk5NjJlODc1Mzc5MTVlNzc5MjdkMDMxOTljMWM2
MzFiMzYyNmIzNi4uMjE2OTRkZmRiYTU5NTQ3NmFkMGM5MzE3ZDQ3MGE3ZjE4YmVlN2Y1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA5LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVmVjdG9yOjpyZWxlYXNlQnVmZmVyIHNob3Vs
ZCByZXR1cm4gYW4gT3duUHRyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjA3MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDaGFuZ2UgRm9ybVN0cmVhbUZpZWxkczo6Y3VycmVudERhdGEgdG8gYW4gT3du
UHRyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlQ3VycmVudFN0cmVhbSk6CisgICAgICAgIChX
ZWJDb3JlOjphZHZhbmNlQ3VycmVudFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpmb3JtQ3Jl
YXRlKToKKwogMjAxMy0wOS0wNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVuYW1lZCBTdGFja0l0ZXJhdG9yIHRvIFN0YWNrVmlzaXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKaW5kZXgg
ZWZmOTNkNzQ3Y2ZkMmE5YjA1Y2VhMTBkMWNlODg3MzgzOGNjZWJkZS4uMmY5NWYxZDQ2Yjc5MzAz
M2RjMGZiOTg2NThjNzE1MTcxYmMyMGNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVj
dG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9Ob3RGb3VuZC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZhbHVlQ2hlY2suaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yVHJhaXRzLmg+CkBAIC0zMDcsMTIgKzMwOCwxMiBAQCBwdWJs
aWM6CiAgICAgY29uc3QgVCogYnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXI7IH0KICAg
ICBzaXplX3QgY2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBtX2NhcGFjaXR5OyB9CiAKLSAgICBU
KiByZWxlYXNlQnVmZmVyKCkKKyAgICBPd25QdHI8VD4gcmVsZWFzZUJ1ZmZlcigpCiAgICAgewog
ICAgICAgICBUKiBidWZmZXIgPSBtX2J1ZmZlcjsKICAgICAgICAgbV9idWZmZXIgPSAwOwogICAg
ICAgICBtX2NhcGFjaXR5ID0gMDsKLSAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKGJ1ZmZlcik7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC00ODcsMTAgKzQ4
OCwxMCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZTo6YnVmZmVyOwogICAgIHVzaW5nIEJhc2U6
OmNhcGFjaXR5OwogCi0gICAgVCogcmVsZWFzZUJ1ZmZlcigpCisgICAgT3duUHRyPFQ+IHJlbGVh
c2VCdWZmZXIoKQogICAgIHsKICAgICAgICAgaWYgKGJ1ZmZlcigpID09IGlubGluZUJ1ZmZlcigp
KQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgcmV0dXJuIEJhc2U6OnJlbGVhc2VCdWZmZXIoKTsKICAgICB9CiAKQEAgLTU0MSw2ICs1
NDIsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgVHlwZU9wZXJhdGlvbnM6OmluaXRpYWxpemUo
YmVnaW4oKSwgZW5kKCkpOwogICAgIH0KIAorICAgIFZlY3RvcihzaXplX3Qgc2l6ZSwgY29uc3Qg
VCYgdmFsKQorICAgICAgICA6IEJhc2Uoc2l6ZSwgc2l6ZSkKKyAgICB7CisgICAgICAgIGlmIChi
ZWdpbigpKQorICAgICAgICAgICAgVHlwZU9wZXJhdGlvbnM6OnVuaW5pdGlhbGl6ZWRGaWxsKGJl
Z2luKCksIGVuZCgpLCB2YWwpOworICAgIH0KKwogICAgIH5WZWN0b3IoKQogICAgIHsKICAgICAg
ICAgaWYgKG1fc2l6ZSkKQEAgLTY1MywxOSArNjYxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgc2hy
aW5rKHNpemUoKSAtIDEpOyAKICAgICB9CiAKLSAgICBWZWN0b3Ioc2l6ZV90IHNpemUsIGNvbnN0
IFQmIHZhbCkKLSAgICAgICAgOiBCYXNlKHNpemUsIHNpemUpCi0gICAgewotICAgICAgICBpZiAo
YmVnaW4oKSkKLSAgICAgICAgICAgIFR5cGVPcGVyYXRpb25zOjp1bmluaXRpYWxpemVkRmlsbChi
ZWdpbigpLCBlbmQoKSwgdmFsKTsKLSAgICB9Ci0KICAgICB2b2lkIGZpbGwoY29uc3QgVCYsIHNp
emVfdCk7CiAgICAgdm9pZCBmaWxsKGNvbnN0IFQmIHZhbCkgeyBmaWxsKHZhbCwgc2l6ZSgpKTsg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlcmF0b3I+IHZvaWQgYXBwZW5kUmFuZ2UoSXRl
cmF0b3Igc3RhcnQsIEl0ZXJhdG9yIGVuZCk7CiAKLSAgICBUKiByZWxlYXNlQnVmZmVyKCk7Cisg
ICAgT3duUHRyPFQ+IHJlbGVhc2VCdWZmZXIoKTsKIAogICAgIHZvaWQgc3dhcChWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlcj4mIG90aGVyKQogICAgIHsKQEAgLTExNTIs
MTkgKzExNTMsMTkgQEAgaW5saW5lIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXI+OjpyZXZlcnNlKCkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXI+Ci1pbmxpbmUgVCogVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXI+OjpyZWxlYXNlQnVmZmVyKCkK
K2lubGluZSBPd25QdHI8VD4gVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRs
ZXI+OjpyZWxlYXNlQnVmZmVyKCkKIHsKLSAgICBUKiBidWZmZXIgPSBCYXNlOjpyZWxlYXNlQnVm
ZmVyKCk7CisgICAgT3duUHRyPFQ+IGJ1ZmZlciA9IEJhc2U6OnJlbGVhc2VCdWZmZXIoKTsKICAg
ICBpZiAoaW5saW5lQ2FwYWNpdHkgJiYgIWJ1ZmZlciAmJiBtX3NpemUpIHsKICAgICAgICAgLy8g
SWYgdGhlIHZlY3RvciBoYWQgc29tZSBkYXRhLCBidXQgbm8gYnVmZmVyIHRvIHJlbGVhc2UsCiAg
ICAgICAgIC8vIHRoYXQgbWVhbnMgaXQgd2FzIHVzaW5nIHRoZSBpbmxpbmUgYnVmZmVyLiBJbiB0
aGF0IGNhc2UsCiAgICAgICAgIC8vIHdlIGNyZWF0ZSBhIGJyYW5kIG5ldyBidWZmZXIgc28gdGhl
IGNhbGxlciBhbHdheXMgZ2V0cyBvbmUuCiAgICAgICAgIHNpemVfdCBieXRlcyA9IG1fc2l6ZSAq
IHNpemVvZihUKTsKLSAgICAgICAgYnVmZmVyID0gc3RhdGljX2Nhc3Q8VCo+KGZhc3RNYWxsb2Mo
Ynl0ZXMpKTsKLSAgICAgICAgbWVtY3B5KGJ1ZmZlciwgZGF0YSgpLCBieXRlcyk7CisgICAgICAg
IGJ1ZmZlciA9IGFkb3B0UHRyKHN0YXRpY19jYXN0PFQqPihmYXN0TWFsbG9jKGJ5dGVzKSkpOwor
ICAgICAgICBtZW1jcHkoYnVmZmVyLmdldCgpLCBkYXRhKCksIGJ5dGVzKTsKICAgICB9CiAgICAg
bV9zaXplID0gMDsKLSAgICByZXR1cm4gYnVmZmVyOworICAgIHJldHVybiBidWZmZXIucmVsZWFz
ZSgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIE92ZXJmbG93SGFuZGxlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQnVmZmVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oCmluZGV4
IDczY2RlODNjZmRmZmFmZjE4YTFjODEzZTU0Yzk5NDU4ODFkNjYwY2UuLmNhYjEyNzZhYWVkZWQ0
Y2E4NmU2YTEyMmZhMWVmNDJhMzhhYjU0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nQnVmZmVyLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWZmZXIu
aApAQCAtNDQsMTIgKzQ0LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChtX2xlbmd0
aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAvIHNpemVvZihDaGFyVHlw
ZSkpCiAgICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICBtX2RhdGEgPSBzdGF0aWNfY2FzdDxD
aGFyVHlwZSo+KGZhc3RNYWxsb2MobV9sZW5ndGggKiBzaXplb2YoQ2hhclR5cGUpKSk7CisgICAg
ICAgIG1fZGF0YSA9IGFkb3B0UHRyKHN0YXRpY19jYXN0PENoYXJUeXBlKj4oZmFzdE1hbGxvYyht
X2xlbmd0aCAqIHNpemVvZihDaGFyVHlwZSkpKSk7CiAgICAgfQogCiAgICAgflN0cmluZ0J1ZmZl
cigpCiAgICAgewotICAgICAgICBmYXN0RnJlZShtX2RhdGEpOwogICAgIH0KIAogICAgIHZvaWQg
c2hyaW5rKHVuc2lnbmVkIG5ld0xlbmd0aCkKQEAgLTYzLDIxICs2MiwyOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGlmIChuZXdMZW5ndGggPiBtX2xlbmd0aCkgewogICAgICAgICAgICAgaWYgKG5ld0xl
bmd0aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAvIHNpemVvZihVQ2hh
cikpCiAgICAgICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgICAgIG1fZGF0YSA9IHN0YXRp
Y19jYXN0PFVDaGFyKj4oZmFzdFJlYWxsb2MobV9kYXRhLCBuZXdMZW5ndGggKiBzaXplb2YoVUNo
YXIpKSk7CisgICAgICAgICAgICBtX2RhdGEgPSBhZG9wdFB0cihzdGF0aWNfY2FzdDxVQ2hhcio+
KGZhc3RSZWFsbG9jKG1fZGF0YS5yZWxlYXNlKCkubGVha1B0cigpLCBuZXdMZW5ndGggKiBzaXpl
b2YoVUNoYXIpKSkpOwogICAgICAgICB9CiAgICAgICAgIG1fbGVuZ3RoID0gbmV3TGVuZ3RoOwog
ICAgIH0KIAogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9
Ci0gICAgQ2hhclR5cGUqIGNoYXJhY3RlcnMoKSB7IHJldHVybiBtX2RhdGE7IH0KKyAgICBDaGFy
VHlwZSogY2hhcmFjdGVycygpIHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQogCi0gICAgQ2hhclR5
cGUmIG9wZXJhdG9yW10odW5zaWduZWQgaSkgeyBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTihpIDwgbV9sZW5ndGgpOyByZXR1cm4gbV9kYXRhW2ldOyB9CisgICAgQ2hhclR5cGUmIG9w
ZXJhdG9yW10odW5zaWduZWQgaSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKGkgPCBtX2xlbmd0aCk7CisgICAgICAgIHJldHVybiBtX2RhdGEuZ2V0KClb
aV07CisgICAgfQogCi0gICAgQ2hhclR5cGUqIHJlbGVhc2UoKSB7IENoYXJUeXBlKiBkYXRhID0g
bV9kYXRhOyBtX2RhdGEgPSAwOyByZXR1cm4gZGF0YTsgfQorICAgIFBhc3NPd25QdHI8Q2hhclR5
cGU+IHJlbGVhc2UoKQorICAgIHsKKyAgICAgICAgT3duUHRyPENoYXJUeXBlPiBkYXRhID0gbV9k
YXRhLnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOworICAgIH0KIAog
cHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKLSAgICBDaGFyVHlwZSogbV9kYXRhOwor
ICAgIE93blB0cjxDaGFyVHlwZT4gbV9kYXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDBlMzMwNjFmOWMzOGQ3YWMwMTQyZDVkNTk4YjIz
OTAzYjMxZGY0NzQuLjFjNGJlNGEzNjAxYTEyYTk3MzJiZDhlOWQ4Y2U0MjdjY2IwOTIxZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8d3Rm
L0NvbXBpbGF0aW9uVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdIYXNoZXIuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0yMzIsMTAgKzIzMywxMCBAQCBwcml2YXRlOgogICAg
IH0KIAogICAgIC8vIENyZWF0ZSBhIFN0cmluZ0ltcGwgYWRvcHRpbmcgb3duZXJzaGlwIG9mIHRo
ZSBwcm92aWRlZCBidWZmZXIgKEJ1ZmZlck93bmVkKQotICAgIFN0cmluZ0ltcGwoY29uc3QgTENo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKKyAgICBTdHJpbmdJbXBsKFBhc3NPd25Q
dHI8TENoYXI+IGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgOiBtX3JlZkNv
dW50KHNfcmVmQ291bnRJbmNyZW1lbnQpCiAgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAg
ICAgICAsIG1fZGF0YTgoY2hhcmFjdGVycykKKyAgICAgICAgLCBtX2RhdGE4KGNoYXJhY3RlcnMu
bGVha1B0cigpKQogICAgICAgICAsIG1fYnVmZmVyKDApCiAgICAgICAgICwgbV9oYXNoQW5kRmxh
Z3Moc19oYXNoRmxhZzhCaXRCdWZmZXIgfCBCdWZmZXJPd25lZCkKICAgICB7CkBAIC0yNzMsMTAg
KzI3NCwxMCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8vIENyZWF0ZSBhIFN0cmluZ0ltcGwg
YWRvcHRpbmcgb3duZXJzaGlwIG9mIHRoZSBwcm92aWRlZCBidWZmZXIgKEJ1ZmZlck93bmVkKQot
ICAgIFN0cmluZ0ltcGwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkK
KyAgICBTdHJpbmdJbXBsKFBhc3NPd25QdHI8VUNoYXI+IGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCkKICAgICAgICAgOiBtX3JlZkNvdW50KHNfcmVmQ291bnRJbmNyZW1lbnQpCiAgICAgICAg
ICwgbV9sZW5ndGgobGVuZ3RoKQotICAgICAgICAsIG1fZGF0YTE2KGNoYXJhY3RlcnMpCisgICAg
ICAgICwgbV9kYXRhMTYoY2hhcmFjdGVycy5sZWFrUHRyKCkpCiAgICAgICAgICwgbV9idWZmZXIo
MCkKICAgICAgICAgLCBtX2hhc2hBbmRGbGFncyhCdWZmZXJPd25lZCkKICAgICB7CkBAIC00NzIs
NyArNDczLDcgQEAgcHVibGljOgogICAgICAgICAgICAgQVNTRVJUKHZlY3Rvci5kYXRhKCkpOwog
ICAgICAgICAgICAgaWYgKHNpemUgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4
KCkpCiAgICAgICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU3RyaW5nSW1wbCh2ZWN0b3IucmVsZWFzZUJ1ZmZlcigpLCBzaXplKSk7CisgICAgICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0cmluZ0ltcGwodmVjdG9yLnJlbGVhc2VCdWZmZXIo
KS5yZWxlYXNlKCksIHNpemUpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZW1wdHkoKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zv
cm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAppbmRleCA4NzU0MjMzY2MxZmYzMTk1Y2Y3NWU4NDhi
ODMzZTc4YTFkNWVhOGM0Li42YTdjODBlZGFlM2Y2MTI2ODNkYjU0ODBjMDBjNDYyOTM2MmExNzVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRh
U3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
Rm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdHJ1Y3QgRm9ybVN0
cmVhbUZpZWxkcyB7CiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgbG9uZyBsb25nIGN1cnJlbnRTdHJl
YW1SYW5nZUxlbmd0aDsKICNlbmRpZgotICAgIGNoYXIqIGN1cnJlbnREYXRhOworICAgIE93blB0
cjxjaGFyPiBjdXJyZW50RGF0YTsKICAgICBDRlJlYWRTdHJlYW1SZWYgZm9ybVN0cmVhbTsKICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgc3RyZWFtTGVuZ3RoOwogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBieXRlc1NlbnQ7CkBAIC0xMjQsMTAgKzEyNCw4IEBAIHN0YXRpYyB2b2lkIGNsb3NlQ3VycmVu
dFN0cmVhbShGb3JtU3RyZWFtRmllbGRzKiBmb3JtKQogICAgICAgICBmb3JtLT5jdXJyZW50U3Ry
ZWFtUmFuZ2VMZW5ndGggPSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlOwogI2VuZGlmCiAgICAg
fQotICAgIGlmIChmb3JtLT5jdXJyZW50RGF0YSkgewotICAgICAgICBmYXN0RnJlZShmb3JtLT5j
dXJyZW50RGF0YSk7Ci0gICAgICAgIGZvcm0tPmN1cnJlbnREYXRhID0gMDsKLSAgICB9CisKKyAg
ICBmb3JtLT5jdXJyZW50RGF0YSA9IG51bGxwdHI7CiB9CiAKIC8vIFJldHVybiBmYWxzZSBpZiB3
ZSBjYW5ub3QgYWR2YW5jZSB0aGUgc3RyZWFtLiBDdXJyZW50bHkgdGhlIG9ubHkgcG9zc2libGUg
ZmFpbHVyZSBpcyB0aGF0IHRoZSB1bmRlcmx5aW5nIGZpbGUgaGFzIGJlZW4gcmVtb3ZlZCBvciBj
aGFuZ2VkIHNpbmNlIEZpbGUuc2xpY2UuCkBAIC0xNDMsOSArMTQxLDkgQEAgc3RhdGljIGJvb2wg
YWR2YW5jZUN1cnJlbnRTdHJlYW0oRm9ybVN0cmVhbUZpZWxkcyogZm9ybSkKIAogICAgIGlmIChu
ZXh0SW5wdXQubV90eXBlID09IEZvcm1EYXRhRWxlbWVudDo6ZGF0YSkgewogICAgICAgICBzaXpl
X3Qgc2l6ZSA9IG5leHRJbnB1dC5tX2RhdGEuc2l6ZSgpOwotICAgICAgICBjaGFyKiBkYXRhID0g
bmV4dElucHV0Lm1fZGF0YS5yZWxlYXNlQnVmZmVyKCk7Ci0gICAgICAgIGZvcm0tPmN1cnJlbnRT
dHJlYW0gPSBDRlJlYWRTdHJlYW1DcmVhdGVXaXRoQnl0ZXNOb0NvcHkoMCwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBVSW50OCo+KGRhdGEpLCBzaXplLCBrQ0ZBbGxvY2F0b3JOdWxsKTsKLSAgICAg
ICAgZm9ybS0+Y3VycmVudERhdGEgPSBkYXRhOworICAgICAgICBPd25QdHI8Y2hhcj4gZGF0YSA9
IG5leHRJbnB1dC5tX2RhdGEucmVsZWFzZUJ1ZmZlcigpOworICAgICAgICBmb3JtLT5jdXJyZW50
U3RyZWFtID0gQ0ZSZWFkU3RyZWFtQ3JlYXRlV2l0aEJ5dGVzTm9Db3B5KDAsIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgVUludDgqPihkYXRhLmdldCgpKSwgc2l6ZSwga0NGQWxsb2NhdG9yTnVsbCk7
CisgICAgICAgIGZvcm0tPmN1cnJlbnREYXRhID0gZGF0YS5yZWxlYXNlKCk7CiAgICAgfSBlbHNl
IHsKICNpZiBFTkFCTEUoQkxPQikKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpbGUgaGFzIGJl
ZW4gY2hhbmdlZCBvciBub3QgaWYgcmVxdWlyZWQuCkBAIC0yMDYsNyArMjA0LDYgQEAgc3RhdGlj
IHZvaWQqIGZvcm1DcmVhdGUoQ0ZSZWFkU3RyZWFtUmVmIHN0cmVhbSwgdm9pZCogY29udGV4dCkK
ICNpZiBFTkFCTEUoQkxPQikKICAgICBuZXdJbmZvLT5jdXJyZW50U3RyZWFtUmFuZ2VMZW5ndGgg
PSBCbG9iRGF0YUl0ZW06OnRvRW5kT2ZGaWxlOwogI2VuZGlmCi0gICAgbmV3SW5mby0+Y3VycmVu
dERhdGEgPSAwOwogICAgIG5ld0luZm8tPmZvcm1TdHJlYW0gPSBzdHJlYW07IC8vIERvbid0IHJl
dGFpbi4gVGhhdCB3b3VsZCBjcmVhdGUgYSByZWZlcmVuY2UgY3ljbGUuCiAgICAgbmV3SW5mby0+
c3RyZWFtTGVuZ3RoID0gZm9ybUNvbnRleHQtPnN0cmVhbUxlbmd0aDsKICAgICBuZXdJbmZvLT5i
eXRlc1NlbnQgPSAwOwo=
</data>
<flag name="review"
          id="232647"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>