<?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>215737</bug_id>
          
          <creation_ts>2020-08-21 11:12:58 -0700</creation_ts>
          <short_desc>IPC::encodeSharedBuffer combines SharedBuffer data segments when copying to SharedMemory</short_desc>
          <delta_ts>2020-08-21 14:29:25 -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>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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1681996</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-21 11:12:58 -0700</bug_when>
    <thetext>WebKit::encodeSharedBuffer(E) needlessly combines SharedBuffer data segments when creating a SharedMemory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681997</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-21 11:13:28 -0700</bug_when>
    <thetext>WebKit::encodeSharedBuffer() needlessly combines SharedBuffer data segments when creating a SharedMemory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681998</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-21 11:14:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/67568099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681999</commentid>
    <comment_count>3</comment_count>
      <attachid>407020</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-21 11:15:50 -0700</bug_when>
    <thetext>Created attachment 407020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682000</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-21 11:15:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/67568099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682012</commentid>
    <comment_count>5</comment_count>
      <attachid>407020</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-21 12:20:57 -0700</bug_when>
    <thetext>Comment on attachment 407020
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        * Platform/SharedMemory.cpp:
&gt; +        (WebKit::SharedMemory::copyBuffer): Changed iterate data segments using a for loop rather
&gt; +        than repeated calls to SharedBuffer::getSomeData().

So this is just a coding style improvement, not the fix?

&gt; Source/WebKit/ChangeLog:14
&gt; +        * Shared/WebCoreArgumentCoders.cpp:
&gt; +        (IPC::encodeSharedBuffer): Changed to call SharedMemory::copyBuffer() rather than
&gt; +        SharedMemory::allocate() + memcpy.

And this is the fix?

&gt; Source/WebKit/Platform/SharedMemory.cpp:44
&gt;      char* const sharedMemoryPtr = reinterpret_cast&lt;char*&gt;(sharedMemory-&gt;data());

This should be static_cast, not reinterpret_cast.

I also suggest using auto rather than char* const.

&gt; Source/WebKit/Platform/SharedMemory.cpp:46
&gt; +        ASSERT(segmentEntry.beginPosition + segmentEntry.segment-&gt;size() &lt;= sharedMemory-&gt;size());

While it’s OK to assert this, seems unnecessary.

&gt; Source/WebKit/Platform/SharedMemory.cpp:48
&gt; +        auto result = memcpy(sharedMemoryPtr + segmentEntry.beginPosition, segmentEntry.segment-&gt;data(), segmentEntry.segment-&gt;size());
&gt; +        ASSERT_UNUSED(result, result == sharedMemoryPtr + segmentEntry.beginPosition);

This seems strange in both the old and new code. Why look at the return value from memcpy? Just not what we normally need to do.

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:144
&gt; +    auto sharedMemoryBuffer = SharedMemory::copyBuffer(*buffer);
&gt;      sharedMemoryBuffer-&gt;createHandle(handle, SharedMemory::Protection::ReadOnly);

Not sure about the failure handling here. For some reason copyBuffer returns null when it fails, rather than doing an explicit crash. Seems like we should be doing an explicit crash rather than just letting it crash &quot;naturally&quot; by dereferencing null.

But this is no different from when we were calling allocate directly. As a cleanup I suggest we tighten this up later and crash rather than returning null. If we really need the &quot;return null&quot; behavior I suggest we add a tryAllocate and a tryCopyBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682023</commentid>
    <comment_count>6</comment_count>
      <attachid>407025</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-21 13:16:54 -0700</bug_when>
    <thetext>Created attachment 407025
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682024</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-08-21 13:36:09 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 407020 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407020&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        * Platform/SharedMemory.cpp:
&gt; &gt; +        (WebKit::SharedMemory::copyBuffer): Changed iterate data segments using a for loop rather
&gt; &gt; +        than repeated calls to SharedBuffer::getSomeData().
&gt; 
&gt; So this is just a coding style improvement, not the fix?
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:14
&gt; &gt; +        * Shared/WebCoreArgumentCoders.cpp:
&gt; &gt; +        (IPC::encodeSharedBuffer): Changed to call SharedMemory::copyBuffer() rather than
&gt; &gt; +        SharedMemory::allocate() + memcpy.
&gt; 
&gt; And this is the fix?

Yeah. I&apos;ve updated the ChangeLog with better words.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682031</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-21 14:29:24 -0700</bug_when>
    <thetext>Committed r266014: &lt;https://trac.webkit.org/changeset/266014&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407025.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407020</attachid>
            <date>2020-08-21 11:15:50 -0700</date>
            <delta_ts>2020-08-21 13:16:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215737-20200821111549.patch</filename>
            <type>text/plain</type>
            <size>3234</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmNGE0OTdjYTE4YWI4OGU0
MWQwYWY5YjNjNGQ4NDA4MzI2N2RhODEuLmEyYzU5YjZiZTgwODYxZmVmYmQ5Y2Q4OTM3NDgwNTI4
OThkMmRiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDgtMjEgIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdDo6ZW5jb2RlU2hhcmVkQnVm
ZmVyKCkgbmVlZGxlc3NseSBjb21iaW5lcyBTaGFyZWRCdWZmZXIgZGF0YSBzZWdtZW50cyB3aGVu
IGNyZWF0aW5nIGEgU2hhcmVkTWVtb3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTU3MzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3NTY4MDk5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5Ojpj
b3B5QnVmZmVyKTogQ2hhbmdlZCBpdGVyYXRlIGRhdGEgc2VnbWVudHMgdXNpbmcgYSBmb3IgbG9v
cCByYXRoZXIKKyAgICAgICAgdGhhbiByZXBlYXRlZCBjYWxscyB0byBTaGFyZWRCdWZmZXI6Omdl
dFNvbWVEYXRhKCkuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6
CisgICAgICAgIChJUEM6OmVuY29kZVNoYXJlZEJ1ZmZlcik6IENoYW5nZWQgdG8gY2FsbCBTaGFy
ZWRNZW1vcnk6OmNvcHlCdWZmZXIoKSByYXRoZXIgdGhhbgorICAgICAgICBTaGFyZWRNZW1vcnk6
OmFsbG9jYXRlKCkgKyBtZW1jcHkuCisKIDIwMjAtMDgtMjEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTc2NjcpOiAxLjl4IG1vcmUgQ1BV
IHRpbWUgaW4gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRlY29kaW5nIGR1cmluZyBO
ZXRmbGl4IHBsYXliYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5jcHAKaW5k
ZXggMWI3Zjk4OWI0MDNlNzEyZGM2MWUwZWM2ZjVkYzZhMDVkNTQyYzNlNC4uYTQxZjE3ZTBjYjE3
YWRjZWI0NGE4YTQ2MGYwZjhkYjJiY2E2YTRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9TaGFyZWRNZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hh
cmVkTWVtb3J5LmNwcApAQCAtNDIsMTIgKzQyLDEwIEBAIFJlZlB0cjxTaGFyZWRNZW1vcnk+IFNo
YXJlZE1lbW9yeTo6Y29weUJ1ZmZlcihjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBjaGFyKiBjb25zdCBzaGFyZWRNZW1vcnlQdHIgPSBy
ZWludGVycHJldF9jYXN0PGNoYXIqPihzaGFyZWRNZW1vcnktPmRhdGEoKSk7Ci0gICAgc2l6ZV90
IHBvc2l0aW9uID0gMDsKLSAgICB3aGlsZSAoYnVmZmVyLnNpemUoKSA+IHBvc2l0aW9uKSB7Ci0g
ICAgICAgIGF1dG8gZGF0YSA9IGJ1ZmZlci5nZXRTb21lRGF0YShwb3NpdGlvbik7Ci0gICAgICAg
IGF1dG8gcmVzdWx0ID0gbWVtY3B5KHNoYXJlZE1lbW9yeVB0ciArIHBvc2l0aW9uLCBkYXRhLmRh
dGEoKSwgZGF0YS5zaXplKCkpOwotICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
ID09IHNoYXJlZE1lbW9yeVB0ciArIHBvc2l0aW9uKTsKLSAgICAgICAgcG9zaXRpb24gKz0gZGF0
YS5zaXplKCk7CisgICAgZm9yIChhdXRvJiBzZWdtZW50RW50cnkgOiBidWZmZXIpIHsKKyAgICAg
ICAgQVNTRVJUKHNlZ21lbnRFbnRyeS5iZWdpblBvc2l0aW9uICsgc2VnbWVudEVudHJ5LnNlZ21l
bnQtPnNpemUoKSA8PSBzaGFyZWRNZW1vcnktPnNpemUoKSk7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gbWVtY3B5KHNoYXJlZE1lbW9yeVB0ciArIHNlZ21lbnRFbnRyeS5iZWdpblBvc2l0aW9uLCBz
ZWdtZW50RW50cnkuc2VnbWVudC0+ZGF0YSgpLCBzZWdtZW50RW50cnkuc2VnbWVudC0+c2l6ZSgp
KTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCA9PSBzaGFyZWRNZW1vcnlQ
dHIgKyBzZWdtZW50RW50cnkuYmVnaW5Qb3NpdGlvbik7CiAgICAgfQogCiAgICAgcmV0dXJuIHNo
YXJlZE1lbW9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IDMyMjlkYTdjNDhiZjU4OTNjMWEyMTI2ZDg0NGJmNDFlMzk5ZWFjMGYuLjcx
MjdmOTlhYmU1OGExZGMzNDI5OWEyMGY1MGRjODliZDZlYjMwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTQwLDggKzE0MCw3IEBA
IHN0YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZlcihFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBT
aGFyZWRCdWZmZXIqIGJ1ZmZlcikKICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERh
dGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZWxlbWVudC5zZWdtZW50LT5kYXRh
KCkpLCBlbGVtZW50LnNlZ21lbnQtPnNpemUoKSwgMSk7CiAjZWxzZQogICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKLSAgICBhdXRvIHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1l
bW9yeTo6YWxsb2NhdGUoYnVmZmVyU2l6ZSk7Ci0gICAgbWVtY3B5KHNoYXJlZE1lbW9yeUJ1ZmZl
ci0+ZGF0YSgpLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyU2l6ZSk7CisgICAgYXV0byBzaGFyZWRN
ZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNvcHlCdWZmZXIoKmJ1ZmZlcik7CiAgICAgc2hh
cmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3Rl
Y3Rpb246OlJlYWRPbmx5KTsKICAgICBlbmNvZGVyIDw8IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxl
IHsgV1RGTW92ZShoYW5kbGUpLCBidWZmZXJTaXplIH07CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407025</attachid>
            <date>2020-08-21 13:16:54 -0700</date>
            <delta_ts>2020-08-21 14:29:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215737-20200821131653.patch</filename>
            <type>text/plain</type>
            <size>4200</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmNGE0OTdjYTE4YWI4OGU0
MWQwYWY5YjNjNGQ4NDA4MzI2N2RhODEuLjRmNDJhZjBjMzRhZTFjYzkwNjg0ZWQyMDk0MjMxMGZi
NDRhOWE0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDgtMjEgIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIElQQzo6ZW5jb2RlU2hhcmVkQnVmZmVy
IGNvbWJpbmVzIFNoYXJlZEJ1ZmZlciBkYXRhIHNlZ21lbnRzIHdoZW4gY29weWluZyB0byBTaGFy
ZWRNZW1vcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNTczNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjc1NjgwOTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSVBDOjplbmNvZGVTaGFyZWRCdWZmZXIg
Y2FsbGVkIFNoYXJlZEJ1ZmZlcjo6ZGF0YSgpIHdoZW4gY29weWluZyBkYXRhIGludG8gU2hhcmVk
TWVtb3J5LAorICAgICAgICByZXF1aXJpbmcgdGhlIFNoYXJlZEJ1ZmZlciB0byBjb21iaW5lIGl0
cyBkYXRhIHNlZ21lbnRzLiBUaGlzIGNhbiBiZSBhdm9pZGVkIGJ5IHVzaW5nCisgICAgICAgIFNo
YXJlZE1lbW9yeTo6Y29weUJ1ZmZlcigpIGluc3RlYWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9T
aGFyZWRNZW1vcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNvcHlCdWZm
ZXIpOiBNb2Rlcm5pemVkIHRvIHVzZSBhdXRvIGFuZCByYW5nZS1iYXNlZCBmb3IgbG9vcHMuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6ZW5jb2RlU2hhcmVkQnVmZmVyKTogVXNlZCBTaGFyZWRNZW1vcnk6OmNvcHlCdWZmZXIoKSB0
byBjcmVhdGUgYSBjb3B5IG9mIHRoZSBidWZmZXIgaW4KKyAgICAgICAgYSBuZXcgU2hhcmVkTWVt
b3J5LiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY29tYmluZSB0aGUgYnVmZmVyJ3Mg
ZGF0YSBzZWdtZW50cy4KKworICAgICAgICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOiBBZGRl
ZCBhIEZJWE1FIGZvciBob3cgU2hhcmVkTWVtb3J5J3MgZmFjdG9yeSBmdW5jdGlvbnMgY291bGQg
YmUKKyAgICAgICAgaW1wcm92ZWQuCisKIDIwMjAtMDgtMjEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTc2NjcpOiAxLjl4IG1vcmUgQ1BV
IHRpbWUgaW4gSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRlY29kaW5nIGR1cmluZyBO
ZXRmbGl4IHBsYXliYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5jcHAKaW5k
ZXggMWI3Zjk4OWI0MDNlNzEyZGM2MWUwZWM2ZjVkYzZhMDVkNTQyYzNlNC4uMmI4N2VjOWI5MDg5
Y2I1N2U0OTBmNDJjMjU1MGZhNDNhZDc1OGM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9TaGFyZWRNZW1vcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hh
cmVkTWVtb3J5LmNwcApAQCAtNDEsMTQgKzQxLDkgQEAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hh
cmVkTWVtb3J5Ojpjb3B5QnVmZmVyKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgIGlm
ICghc2hhcmVkTWVtb3J5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNoYXIqIGNv
bnN0IHNoYXJlZE1lbW9yeVB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNoYXJlZE1lbW9y
eS0+ZGF0YSgpKTsKLSAgICBzaXplX3QgcG9zaXRpb24gPSAwOwotICAgIHdoaWxlIChidWZmZXIu
c2l6ZSgpID4gcG9zaXRpb24pIHsKLSAgICAgICAgYXV0byBkYXRhID0gYnVmZmVyLmdldFNvbWVE
YXRhKHBvc2l0aW9uKTsKLSAgICAgICAgYXV0byByZXN1bHQgPSBtZW1jcHkoc2hhcmVkTWVtb3J5
UHRyICsgcG9zaXRpb24sIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7Ci0gICAgICAgIEFTU0VS
VF9VTlVTRUQocmVzdWx0LCByZXN1bHQgPT0gc2hhcmVkTWVtb3J5UHRyICsgcG9zaXRpb24pOwot
ICAgICAgICBwb3NpdGlvbiArPSBkYXRhLnNpemUoKTsKLSAgICB9CisgICAgYXV0byBzaGFyZWRN
ZW1vcnlQdHIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oc2hhcmVkTWVtb3J5LT5kYXRhKCkpOworICAg
IGZvciAoYXV0byYgc2VnbWVudEVudHJ5IDogYnVmZmVyKQorICAgICAgICBtZW1jcHkoc2hhcmVk
TWVtb3J5UHRyICsgc2VnbWVudEVudHJ5LmJlZ2luUG9zaXRpb24sIHNlZ21lbnRFbnRyeS5zZWdt
ZW50LT5kYXRhKCksIHNlZ21lbnRFbnRyeS5zZWdtZW50LT5zaXplKCkpOwogCiAgICAgcmV0dXJu
IHNoYXJlZE1lbW9yeTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vU2hh
cmVkTWVtb3J5LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCmluZGV4
IGEwNjAxZjJjMDI2OWEzOTVhYjA4ZDBkYTMyMTBkYjUwZmIyNzZmYTkuLmI2YTUzM2FhNTAyNTRi
MzQwMTRiNWM5NjdkNDQ3NGQ3ZDgzYTRiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9TaGFyZWRN
ZW1vcnkuaApAQCAtMTE0LDggKzExNCw4IEBAIHB1YmxpYzoKICAgICAgICAgdWludDY0X3QgZGF0
YVNpemUgeyAwIH07CiAgICAgfTsKIAorICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhlc2UgZmFjdG9y
eSBmdW5jdGlvbnMgdG8gcmV0dXJuIFJlZjxTaGFyZWRNZW1vcnk+IGFuZCBjcmFzaCBvbiBmYWls
dXJlLgogICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBhbGxvY2F0ZShzaXplX3QpOwot
ICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGUodm9pZCosIHNpemVfdCwgUHJv
dGVjdGlvbik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+IGNvcHlCdWZmZXIoY29u
c3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJik7CiAgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1v
cnk+IG1hcChjb25zdCBIYW5kbGUmLCBQcm90ZWN0aW9uKTsKICNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCmluZGV4IDMyMjlkYTdjNDhiZjU4OTNjMWEyMTI2ZDg0NGJmNDFlMzk5ZWFjMGYuLjcxMjdm
OTlhYmU1OGExZGMzNDI5OWEyMGY1MGRjODliZDZlYjMwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTQwLDggKzE0MCw3IEBAIHN0
YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZlcihFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTaGFy
ZWRCdWZmZXIqIGJ1ZmZlcikKICAgICAgICAgZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZWxlbWVudC5zZWdtZW50LT5kYXRhKCkp
LCBlbGVtZW50LnNlZ21lbnQtPnNpemUoKSwgMSk7CiAjZWxzZQogICAgIFNoYXJlZE1lbW9yeTo6
SGFuZGxlIGhhbmRsZTsKLSAgICBhdXRvIHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9y
eTo6YWxsb2NhdGUoYnVmZmVyU2l6ZSk7Ci0gICAgbWVtY3B5KHNoYXJlZE1lbW9yeUJ1ZmZlci0+
ZGF0YSgpLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyU2l6ZSk7CisgICAgYXV0byBzaGFyZWRNZW1v
cnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNvcHlCdWZmZXIoKmJ1ZmZlcik7CiAgICAgc2hhcmVk
TWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKICAgICBlbmNvZGVyIDw8IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsg
V1RGTW92ZShoYW5kbGUpLCBidWZmZXJTaXplIH07CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>