<?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>48520</bug_id>
          
          <creation_ts>2010-10-28 06:49:58 -0700</creation_ts>
          <short_desc>[Qt][WK2] SharedMemory is broken</short_desc>
          <delta_ts>2010-11-02 09:45:52 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301040</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-28 06:49:58 -0700</bug_when>
    <thetext>We have implemented SharedMemory with the MappedMemoryPool that was designed to UpdateChunk.
We should not allow the pool to recycle the mapped chunk until it is used at the receiving side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301046</commentid>
    <comment_count>1</comment_count>
      <attachid>72185</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-28 06:58:12 -0700</bug_when>
    <thetext>Created attachment 72185
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301071</commentid>
    <comment_count>2</comment_count>
      <attachid>72185</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-28 07:46:35 -0700</bug_when>
    <thetext>Comment on attachment 72185
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301073</commentid>
    <comment_count>3</comment_count>
      <attachid>72185</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-28 07:52:17 -0700</bug_when>
    <thetext>Comment on attachment 72185
proposed patch

Clearing flags on attachment: 72185

Committed r70776: &lt;http://trac.webkit.org/changeset/70776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301074</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-28 07:52:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302937</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-01 14:28:50 -0700</bug_when>
    <thetext>My assumtion was wrong. m_data is used after we have passed the handle at least there:
VisitedLinkProvider.cpp:122
-------
RefPtr&lt;SharedMemory&gt; currentTableMemory = m_table.sharedMemory();
...
const LinkHash* currentLinkHashes = static_cast&lt;const LinkHash*&gt;(currentTableMemory-&gt;data());
for (unsigned i = 0; i &lt; currentTableSize; ++i) {
    LinkHash linkHash = currentLinkHashes[i];
-------

This caused crashes on our wk2 bot: http://webkit.sed.hu/buildbot/waterfall?show=x86-32%20Linux%20Qt%20Release%20WebKit2
To correctly fix it we need am additional member in SharedMemory (a bool for example).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302976</commentid>
    <comment_count>6</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-01 15:07:32 -0700</bug_when>
    <thetext>After running some tests I have realized that a bool is not enough
(tests had been timed out instead of crashing with the fix).
The ownership of the shared memory is shared across processes so
we need something that acts as a handle. Ideally we should use
QSharedMemory but as antti noted it has some problems on MAC:
http://bugreports.qt.nokia.com/browse/QTBUG-9446.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303268</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-02 02:06:55 -0700</bug_when>
    <thetext>*** Bug 48619 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303276</commentid>
    <comment_count>8</comment_count>
      <attachid>72641</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-02 02:38:19 -0700</bug_when>
    <thetext>Created attachment 72641
qsharedmemory based implementation

Fix almost all crashes in run-webkit-tests -2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303338</commentid>
    <comment_count>9</comment_count>
      <attachid>72659</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-02 06:55:11 -0700</bug_when>
    <thetext>Created attachment 72659
Patch

Doing key generation more safely by the use of UUuid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303343</commentid>
    <comment_count>10</comment_count>
      <attachid>72659</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-11-02 07:06:29 -0700</bug_when>
    <thetext>Comment on attachment 72659
Patch

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

This is beautiful, r=me!

As discussed on IRC, if the QUuid generation turns out to be too expensive, we can always replace it by something more light-weight later on.

&gt; WebKit2/Platform/qt/SharedMemoryQt.cpp:134
&gt; +    // m_impl must be not null and it must points to a valid QSharedMemory object.

s/not null/non-null/
s/points/point/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303385</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-11-02 08:49:11 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/71118.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303422</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-02 09:45:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/71118 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
fast/text/international/plane2.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72185</attachid>
            <date>2010-10-28 06:58:12 -0700</date>
            <delta_ts>2010-11-02 02:38:19 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>0001-Qt-WK2-SharedMemory-should-be-released-by-the-receiv.patch</filename>
            <type>text/plain</type>
            <size>2095</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">RnJvbSAxNjI0OGE0ZjllNjMyNzMxMjM3MGIyMWZkZjI3NzE5M2UxM2RiYzg4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCYWxhenMgS2VsZW1lbiA8a2JhbGF6c0B3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDI4IE9jdCAyMDEwIDE1OjUzOjMzICswMjAwClN1YmplY3Q6IFtQQVRDSF0gW1F0
XVtXSzJdIFNoYXJlZE1lbW9yeSBzaG91bGQgYmUgcmVsZWFzZWQgYnkgdGhlIHJlY2VpdmluZyBw
cm9jZXNzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg1MjAKClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBQbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5j
cHA6CihXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6flNoYXJlZE1lbW9yeSk6CihXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKToKLS0tCiBXZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysrKysrKysrKysKIFdlYktpdDIvUGxhdGZvcm0vcXQvU2hhcmVk
TWVtb3J5UXQuY3BwIHwgICAgOCArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRp
b25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWExMWM4Ny4uOTA3YWQxMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMC0xMC0yOCAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIFNoYXJl
ZE1lbW9yeSBzaG91bGQgYmUgcmVsZWFzZWQgYnkgdGhlIHJlY2VpdmluZyBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODUyMAorCisgICAg
ICAgICogUGxhdGZvcm0vcXQvU2hhcmVkTWVtb3J5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
aGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OmNyZWF0ZUhhbmRsZSk6CisKIDIwMTAtMTAtMjggIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxl
LmNvbT4KIAogICAgICAgICAzMi1iaXQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9Q
bGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJl
ZE1lbW9yeVF0LmNwcAppbmRleCBmYTE5YzBmLi4xYzU5NTlkIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVF0LmNwcAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL3F0
L1NoYXJlZE1lbW9yeVF0LmNwcApAQCAtMTIyLDYgKzEyMiwxMSBAQCBQYXNzUmVmUHRyPFNoYXJl
ZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFByb3Rl
Y3Rpb24gcAogCiBTaGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkoKQogeworICAgIGlmICghbV9k
YXRhKSB7CisgICAgICAgIC8vIE93bmVyc2hpcCBvZiB0aGUgbWFwcGVkIG1lbW9yeSBoYXMgYmVl
biBwYXNzZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBNYXBwZWRNZW1vcnkqIG1h
cHBlZE1lbW9yeSA9IG1hcHBlZE1lbW9yeVBvb2wtPnNlYXJjaEZvck1hcHBlZE1lbW9yeShyZWlu
dGVycHJldF9jYXN0PHVjaGFyKj4obV9kYXRhKSk7CiAgICAgaWYgKG1hcHBlZE1lbW9yeSkKICAg
ICAgICAgbWFwcGVkTWVtb3J5LT5tYXJrRnJlZSgpOwpAQCAtMTQwLDYgKzE0NSw5IEBAIGJvb2wg
U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUoSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcHJv
dGVjdGlvbikKICAgICBoYW5kbGUubV9maWxlTmFtZSA9IG1tLT5maWxlLT5maWxlTmFtZSgpOwog
ICAgIGhhbmRsZS5tX3NpemUgPSBtX3NpemU7CiAKKyAgICAvLyBIYW5kIG9mZiBvd25lcnNoaXAg
b2YgdGhlIG1hcHBlZCBtZW1vcnkgdG8gdGhlIHJlY2VpdmluZyBwcm9jZXNzLgorICAgIG1fZGF0
YSA9IDA7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLSAKMS42LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72641</attachid>
            <date>2010-11-02 02:38:19 -0700</date>
            <delta_ts>2010-11-02 06:55:06 -0700</delta_ts>
            <desc>qsharedmemory based implementation</desc>
            <filename>land_sm_qsm.diff</filename>
            <type>text/plain</type>
            <size>6965</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MTE0YmIyZC4uMTBiYWNlMSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMS0wMiAgQmFsYXpzIEtlbGVt
ZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIFNoYXJlZE1lbW9yeSBpcyBicm9rZW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTIwCisKKyAgICAg
ICAgSW1wbGVtZW50IFNoYXJlZE1lbW9yeSB3aXRoIFFTaGFyZWRNZW1vcnkgdG8gY29ycmVjdGx5
IGhhbmRsZQorICAgICAgICBvd25lcnNoaXAgYW5kIHRvIGF2b2lkIGV4dHJhIGFsbG9jYXRpb24g
Zm9yIHBhZ2Ugc2l6ZSByZXF1ZXN0cy4KKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnku
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjpIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpT
aGFyZWRNZW1vcnk6OkhhbmRsZTo6aXNOdWxsKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFu
ZGxlOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVVbmlxdWVLZXkpOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmFjY2Vz
c01vZGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkpOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZSk6CisKIDIwMTAtMTEt
MDEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
YnVpbGQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIGIvV2Vi
S2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAppbmRleCBjYjZjYTE1Li4wNWRjMGRkIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCisrKyBiL1dlYktpdDIvUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogI2lmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFF0R2xvYmFsPgorUVRf
QkVHSU5fTkFNRVNQQUNFCitjbGFzcyBRU2hhcmVkTWVtb3J5OworUVRfRU5EX05BTUVTUEFDRQog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlmCiAKQEAgLTY1LDcgKzY5LDcg
QEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBtdXRhYmxlIEhBTkRMRSBt
X2hhbmRsZTsKICNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBtdXRhYmxlIFN0cmluZyBtX2Zp
bGVOYW1lOworICAgICAgICBtdXRhYmxlIFN0cmluZyBtX2tleTsKICNlbmRpZgogICAgICAgICBz
aXplX3QgbV9zaXplOwogICAgIH07CkBAIC05MSw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCogbV9kYXRhOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICBIQU5ETEUgbV9oYW5kbGU7CisjZWxp
ZiBQTEFURk9STShRVCkKKyAgICBRU2hhcmVkTWVtb3J5KiBtX2ltcGw7CiAjZW5kaWYKIH07CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vcXQvU2hhcmVkTWVtb3J5UXQuY3BwIGIvV2Vi
S2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAKaW5kZXggMWM1OTU5ZC4uMmRhMTJm
YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAKKysr
IGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAKQEAgLTI5LDE4ICsyOSwx
OCBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRF
bmNvZGVyLmgiCi0jaW5jbHVkZSAiTWFwcGVkTWVtb3J5UG9vbC5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgPFFJT0RldmljZT4KICNpbmNsdWRlIDx1bmlz
dGQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDxRTGF0aW4x
U3RyaW5nPgorI2luY2x1ZGUgPFFTaGFyZWRNZW1vcnk+CisjaW5jbHVkZSA8UVN0cmluZz4KKyNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIE1hcHBlZE1lbW9yeVBvb2wqIG1hcHBlZE1l
bW9yeVBvb2wgPSBNYXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpOwotCiBTaGFyZWRNZW1vcnk6
OkhhbmRsZTo6SGFuZGxlKCkKLSAgICA6IG1fZmlsZU5hbWUoKQorICAgIDogbV9rZXkoKQogICAg
ICwgbV9zaXplKDApCiB7CiB9CkBAIC01MSw1NyArNTEsNjggQEAgU2hhcmVkTWVtb3J5OjpIYW5k
bGU6On5IYW5kbGUoKQogCiBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25z
dAogewotICAgIHJldHVybiBtX2ZpbGVOYW1lLmlzTnVsbCgpOworICAgIHJldHVybiBtX2tleS5p
c051bGwoKTsKIH0KIAogdm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLT5lbmNvZGVV
SW50NjQobV9zaXplKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9maWxlTmFtZSk7Ci0gICAgbV9m
aWxlTmFtZSA9IFN0cmluZygpOworICAgIGVuY29kZXItPmVuY29kZShtX2tleSk7CisgICAgbV9r
ZXkgPSBTdHJpbmcoKTsKIH0KIAogYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAg
QVNTRVJUKCFoYW5kbGUubV9zaXplKTsKLSAgICBBU1NFUlQoaGFuZGxlLm1fZmlsZU5hbWUuaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlRfQVJHKGhhbmRsZSwgIWhhbmRsZS5tX3NpemUpOworICAgIEFT
U0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUubV9rZXkuaXNOdWxsKCkpOwogCiAgICAgdWludDY0X3Qg
c2l6ZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgU3RyaW5nIGZpbGVOYW1lOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKGZpbGVOYW1lKSkKKyAgICBTdHJpbmcga2V5OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KGtleSkpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaGFuZGxlLm1fc2l6ZSA9IHNpemU7
Ci0gICAgaGFuZGxlLm1fZmlsZU5hbWUgPSBmaWxlTmFtZTsKKyAgICBoYW5kbGUubV9rZXkgPSBr
ZXk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKHNpemVfdCBzaXplKQorc3RhdGljIFFTdHJpbmcgY3JlYXRlVW5p
cXVlS2V5KCkKIHsKLSAgICBNYXBwZWRNZW1vcnkqIG1tID0gbWFwcGVkTWVtb3J5UG9vbC0+bWFw
TWVtb3J5KHNpemUsIFFJT0RldmljZTo6UmVhZFdyaXRlKTsKKyAgICBzdGF0aWMgcWxvbmdsb25n
IGtleU51bWJlciA9IDA7CisgICAgaWYgKCFrZXlOdW1iZXIpCisgICAgICAgIGtleU51bWJlciA9
IHFsb25nbG9uZyhXVEY6OmN1cnJlbnRUaW1lTVMoKSk7CisKKyAgICByZXR1cm4gUUxhdGluMVN0
cmluZygiUVdLU2hhcmVkTWVtb3J5S2V5IikgKyBRU3RyaW5nOjpudW1iZXIoa2V5TnVtYmVyKysp
OworfQogCitQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6
ZV90IHNpemUpCit7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5KGFkb3B0
UmVmKG5ldyBTaGFyZWRNZW1vcnkpKTsKKyAgICBRU2hhcmVkTWVtb3J5KiBpbXBsID0gbmV3IFFT
aGFyZWRNZW1vcnkoY3JlYXRlVW5pcXVlS2V5KCkpOworICAgIGJvb2wgY3JlYXRlZCA9IGltcGwt
PmNyZWF0ZShzaXplKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNyZWF0ZWQsIGNyZWF0ZWQpOworICAg
IHNoYXJlZE1lbW9yeS0+bV9pbXBsID0gaW1wbDsKICAgICBzaGFyZWRNZW1vcnktPm1fc2l6ZSA9
IHNpemU7Ci0gICAgc2hhcmVkTWVtb3J5LT5tX2RhdGEgPSByZWludGVycHJldF9jYXN0PHZvaWQq
PihtbS0+ZGF0YSgpKTsKKyAgICBzaGFyZWRNZW1vcnktPm1fZGF0YSA9IGltcGwtPmRhdGEoKTsK
IAogICAgIHJldHVybiBzaGFyZWRNZW1vcnkucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgaW5saW5l
IFFJT0RldmljZTo6T3Blbk1vZGUgbWFwUHJvdGVjdGlvbihTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b24gcHJvdGVjdGlvbikKK3N0YXRpYyBpbmxpbmUgUVNoYXJlZE1lbW9yeTo6QWNjZXNzTW9kZSBh
Y2Nlc3NNb2RlKFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBwcm90ZWN0aW9uKQogewogICAgIHN3
aXRjaCAocHJvdGVjdGlvbikgewogICAgIGNhc2UgU2hhcmVkTWVtb3J5OjpSZWFkT25seToKLSAg
ICAgICAgcmV0dXJuIFFJT0RldmljZTo6UmVhZE9ubHk7CisgICAgICAgIHJldHVybiBRU2hhcmVk
TWVtb3J5OjpSZWFkT25seTsKICAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UmVhZFdyaXRlOgotICAg
ICAgICByZXR1cm4gUUlPRGV2aWNlOjpSZWFkV3JpdGU7CisgICAgICAgIHJldHVybiBRU2hhcmVk
TWVtb3J5OjpSZWFkV3JpdGU7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIFFJT0RldmljZTo6Tm90T3BlbjsKKyAgICByZXR1cm4gUVNoYXJlZE1lbW9yeTo6
UmVhZFdyaXRlOwogfQogCiBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5Ojpj
cmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcHJvdGVjdGlvbikKQEAgLTEw
OSw0NSArMTIwLDM2IEBAIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNy
ZWF0ZShjb25zdCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwCiAgICAgaWYgKGhhbmRsZS5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBRSU9EZXZpY2U6Ok9wZW5Nb2RlIG9w
ZW5Nb2RlID0gbWFwUHJvdGVjdGlvbihwcm90ZWN0aW9uKTsKLQotICAgIE1hcHBlZE1lbW9yeSog
bW0gPSBtYXBwZWRNZW1vcnlQb29sLT5tYXBGaWxlKFFTdHJpbmcoaGFuZGxlLm1fZmlsZU5hbWUp
LCBoYW5kbGUubV9zaXplLCBvcGVuTW9kZSk7Ci0KICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBz
aGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNoYXJlZE1lbW9yeSkpOworICAgIFFTaGFyZWRNZW1v
cnkqIGltcGwgPSBuZXcgUVNoYXJlZE1lbW9yeShRU3RyaW5nKGhhbmRsZS5tX2tleSkpOworICAg
IGJvb2wgYXR0YWNoZWQgPSBpbXBsLT5hdHRhY2goYWNjZXNzTW9kZShwcm90ZWN0aW9uKSk7Cisg
ICAgQVNTRVJUX1VOVVNFRChhdHRhY2hlZCwgYXR0YWNoZWQpOworICAgIHNoYXJlZE1lbW9yeS0+
bV9pbXBsID0gaW1wbDsKKyAgICBBU1NFUlQoaGFuZGxlLm1fc2l6ZSA9PSBpbXBsLT5zaXplKCkp
OwogICAgIHNoYXJlZE1lbW9yeS0+bV9zaXplID0gaGFuZGxlLm1fc2l6ZTsKLSAgICBzaGFyZWRN
ZW1vcnktPm1fZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1tLT5kYXRhKCkpOworICAg
IHNoYXJlZE1lbW9yeS0+bV9kYXRhID0gaW1wbC0+ZGF0YSgpOwogCiAgICAgcmV0dXJuIHNoYXJl
ZE1lbW9yeS5yZWxlYXNlKCk7CiB9CiAKIFNoYXJlZE1lbW9yeTo6flNoYXJlZE1lbW9yeSgpCiB7
Ci0gICAgaWYgKCFtX2RhdGEpIHsKLSAgICAgICAgLy8gT3duZXJzaGlwIG9mIHRoZSBtYXBwZWQg
bWVtb3J5IGhhcyBiZWVuIHBhc3NlZC4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE1h
cHBlZE1lbW9yeSogbWFwcGVkTWVtb3J5ID0gbWFwcGVkTWVtb3J5UG9vbC0+c2VhcmNoRm9yTWFw
cGVkTWVtb3J5KHJlaW50ZXJwcmV0X2Nhc3Q8dWNoYXIqPihtX2RhdGEpKTsKLSAgICBpZiAobWFw
cGVkTWVtb3J5KQotICAgICAgICBtYXBwZWRNZW1vcnktPm1hcmtGcmVlKCk7CisgICAgLy8gbV9p
bXBsIG11c3QgYmUgbm90IG51bGwgYW5kIGl0IG11c3QgcG9pbnRzIHRvIGEgdmFsaWQgUVNoYXJl
ZE1lbW9yeSBvYmplY3QuCisgICAgQVNTRVJUKHFvYmplY3RfY2FzdDxRU2hhcmVkTWVtb3J5Kj4o
bV9pbXBsKSk7CisgICAgZGVsZXRlIG1faW1wbDsKIH0KIAogYm9vbCBTaGFyZWRNZW1vcnk6OmNy
ZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQogewotICAg
IEFTU0VSVChoYW5kbGUubV9maWxlTmFtZS5pc051bGwoKSk7Ci0gICAgQVNTRVJUKCFoYW5kbGUu
bV9zaXplKTsKKyAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxlLm1fa2V5LmlzTnVsbCgpKTsK
KyAgICBBU1NFUlRfQVJHKGhhbmRsZSwgIWhhbmRsZS5tX3NpemUpOwogCi0gICAgTWFwcGVkTWVt
b3J5KiBtbSA9IG1hcHBlZE1lbW9yeVBvb2wtPnNlYXJjaEZvck1hcHBlZE1lbW9yeShyZWludGVy
cHJldF9jYXN0PHVjaGFyKj4obV9kYXRhKSk7Ci0KLSAgICBpZiAoIW1tKQorICAgIFFTdHJpbmcg
a2V5ID0gbV9pbXBsLT5rZXkoKTsKKyAgICBpZiAoa2V5LmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBoYW5kbGUubV9maWxlTmFtZSA9IG1tLT5maWxlLT5maWxlTmFtZSgp
OworICAgIGhhbmRsZS5tX2tleSA9IFN0cmluZyhrZXkpOwogICAgIGhhbmRsZS5tX3NpemUgPSBt
X3NpemU7CiAKLSAgICAvLyBIYW5kIG9mZiBvd25lcnNoaXAgb2YgdGhlIG1hcHBlZCBtZW1vcnkg
dG8gdGhlIHJlY2VpdmluZyBwcm9jZXNzLgotICAgIG1fZGF0YSA9IDA7Ci0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72659</attachid>
            <date>2010-11-02 06:55:11 -0700</date>
            <delta_ts>2010-11-02 08:49:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48520-20101102135510.patch</filename>
            <type>text/plain</type>
            <size>7069</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MTE0YmIyZGZhZjk5MjM4MTViN2IxNzU2ZDg1NTYzZGQyNzcyZTI1ZC4uMTBiYWNlMWEwNzUxY2Fl
YTNkMjBjMDA1OGVjYjhiZGI0ZGRjNGZlOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMS0wMiAgQmFs
YXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIFNoYXJlZE1lbW9yeSBpcyBicm9r
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTIw
CisKKyAgICAgICAgSW1wbGVtZW50IFNoYXJlZE1lbW9yeSB3aXRoIFFTaGFyZWRNZW1vcnkgdG8g
Y29ycmVjdGx5IGhhbmRsZQorICAgICAgICBvd25lcnNoaXAgYW5kIHRvIGF2b2lkIGV4dHJhIGFs
bG9jYXRpb24gZm9yIHBhZ2Ugc2l6ZSByZXF1ZXN0cy4KKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFy
ZWRNZW1vcnkuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjpIYW5kbGUpOgorICAgICAgICAo
V2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6aXNOdWxsKToKKyAgICAgICAgKFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVVbmlxdWVLZXkp
OgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OmFjY2Vzc01vZGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFyZWRN
ZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZSk6CisK
IDIwMTAtMTEtMDEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggYnVpbGQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9y
eS5oIGIvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAppbmRleCBjYjZjYTE1ZWY3NzJh
ZGEzMGU4YjcxNzYxMDhmZjFhN2IyMjFkYTNiLi4wNWRjMGRkOWUzMzAyNTljZGNiNjgxMTk1MmUy
YmVjNTIxYmUzNDAxIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5o
CisrKyBiL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTMxLDYgKzMxLDEwIEBA
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogI2lmIFBMQVRGT1JNKFFUKQorI2luY2x1
ZGUgPFF0R2xvYmFsPgorUVRfQkVHSU5fTkFNRVNQQUNFCitjbGFzcyBRU2hhcmVkTWVtb3J5Owor
UVRfRU5EX05BTUVTUEFDRQogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlm
CiAKQEAgLTY1LDcgKzY5LDcgQEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oV0lOKQogICAgICAg
ICBtdXRhYmxlIEhBTkRMRSBtX2hhbmRsZTsKICNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBt
dXRhYmxlIFN0cmluZyBtX2ZpbGVOYW1lOworICAgICAgICBtdXRhYmxlIFN0cmluZyBtX2tleTsK
ICNlbmRpZgogICAgICAgICBzaXplX3QgbV9zaXplOwogICAgIH07CkBAIC05MSw2ICs5NSw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCogbV9kYXRhOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICBIQU5E
TEUgbV9oYW5kbGU7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICBRU2hhcmVkTWVtb3J5KiBtX2lt
cGw7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vcXQvU2hhcmVk
TWVtb3J5UXQuY3BwIGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAKaW5k
ZXggMWM1OTU5ZDRlOTdjMDA3OGI0NTNmODQ2MmJiNzU2N2I1YzEyOGM3ZS4uOWQ5ZmViZWI4MmZj
MWE2ZDAwMzFhOTk1NGU2MTRlZGFjMGU0ZjVkMyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9y
bS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAKKysrIGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRN
ZW1vcnlRdC5jcHAKQEAgLTI5LDE4ICsyOSwxOSBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNv
ZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVkZSAiTWFwcGVkTWVt
b3J5UG9vbC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUg
PFFJT0RldmljZT4KICNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKyNpbmNsdWRlIDxRTGF0aW4xU3RyaW5nPgorI2luY2x1ZGUgPFFTaGFyZWRNZW1v
cnk+CisjaW5jbHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxRVXVpZD4KKyNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotc3RhdGljIE1hcHBlZE1lbW9yeVBvb2wqIG1hcHBlZE1lbW9yeVBvb2wgPSBN
YXBwZWRNZW1vcnlQb29sOjppbnN0YW5jZSgpOwotCiBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6SGFu
ZGxlKCkKLSAgICA6IG1fZmlsZU5hbWUoKQorICAgIDogbV9rZXkoKQogICAgICwgbV9zaXplKDAp
CiB7CiB9CkBAIC01MSw1NyArNTIsNjQgQEAgU2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUo
KQogCiBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAogewotICAgIHJl
dHVybiBtX2ZpbGVOYW1lLmlzTnVsbCgpOworICAgIHJldHVybiBtX2tleS5pc051bGwoKTsKIH0K
IAogdm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyLT5lbmNvZGVVSW50NjQobV9zaXpl
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9maWxlTmFtZSk7Ci0gICAgbV9maWxlTmFtZSA9IFN0
cmluZygpOworICAgIGVuY29kZXItPmVuY29kZShtX2tleSk7CisgICAgbV9rZXkgPSBTdHJpbmco
KTsKIH0KIAogYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAgQVNTRVJUKCFoYW5k
bGUubV9zaXplKTsKLSAgICBBU1NFUlQoaGFuZGxlLm1fZmlsZU5hbWUuaXNFbXB0eSgpKTsKKyAg
ICBBU1NFUlRfQVJHKGhhbmRsZSwgIWhhbmRsZS5tX3NpemUpOworICAgIEFTU0VSVF9BUkcoaGFu
ZGxlLCBoYW5kbGUubV9rZXkuaXNOdWxsKCkpOwogCiAgICAgdWludDY0X3Qgc2l6ZTsKICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChzaXplKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgU3RyaW5nIGZpbGVOYW1lOwotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGZpbGVOYW1l
KSkKKyAgICBTdHJpbmcga2V5OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGtleSkpCiAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaGFuZGxlLm1fc2l6ZSA9IHNpemU7Ci0gICAgaGFuZGxl
Lm1fZmlsZU5hbWUgPSBmaWxlTmFtZTsKKyAgICBoYW5kbGUubV9rZXkgPSBrZXk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6
Y3JlYXRlKHNpemVfdCBzaXplKQorc3RhdGljIFFTdHJpbmcgY3JlYXRlVW5pcXVlS2V5KCkKIHsK
LSAgICBNYXBwZWRNZW1vcnkqIG1tID0gbWFwcGVkTWVtb3J5UG9vbC0+bWFwTWVtb3J5KHNpemUs
IFFJT0RldmljZTo6UmVhZFdyaXRlKTsKKyAgICByZXR1cm4gUUxhdGluMVN0cmluZygiUVdLU2hh
cmVkTWVtb3J5S2V5IikgKyBRVXVpZDo6Y3JlYXRlVXVpZCgpLnRvU3RyaW5nKCk7Cit9CiAKK1Bh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShzaXplX3Qgc2l6ZSkK
K3sKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNo
YXJlZE1lbW9yeSkpOworICAgIFFTaGFyZWRNZW1vcnkqIGltcGwgPSBuZXcgUVNoYXJlZE1lbW9y
eShjcmVhdGVVbmlxdWVLZXkoKSk7CisgICAgYm9vbCBjcmVhdGVkID0gaW1wbC0+Y3JlYXRlKHNp
emUpOworICAgIEFTU0VSVF9VTlVTRUQoY3JlYXRlZCwgY3JlYXRlZCk7CisgICAgc2hhcmVkTWVt
b3J5LT5tX2ltcGwgPSBpbXBsOwogICAgIHNoYXJlZE1lbW9yeS0+bV9zaXplID0gc2l6ZTsKLSAg
ICBzaGFyZWRNZW1vcnktPm1fZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1tLT5kYXRh
KCkpOworICAgIHNoYXJlZE1lbW9yeS0+bV9kYXRhID0gaW1wbC0+ZGF0YSgpOwogCiAgICAgcmV0
dXJuIHNoYXJlZE1lbW9yeS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUUlPRGV2aWNl
OjpPcGVuTW9kZSBtYXBQcm90ZWN0aW9uKFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBwcm90ZWN0
aW9uKQorc3RhdGljIGlubGluZSBRU2hhcmVkTWVtb3J5OjpBY2Nlc3NNb2RlIGFjY2Vzc01vZGUo
U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiB7CiAgICAgc3dpdGNoIChwcm90
ZWN0aW9uKSB7CiAgICAgY2FzZSBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5OgotICAgICAgICByZXR1
cm4gUUlPRGV2aWNlOjpSZWFkT25seTsKKyAgICAgICAgcmV0dXJuIFFTaGFyZWRNZW1vcnk6OlJl
YWRPbmx5OwogICAgIGNhc2UgU2hhcmVkTWVtb3J5OjpSZWFkV3JpdGU6Ci0gICAgICAgIHJldHVy
biBRSU9EZXZpY2U6OlJlYWRXcml0ZTsKKyAgICAgICAgcmV0dXJuIFFTaGFyZWRNZW1vcnk6OlJl
YWRXcml0ZTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
UUlPRGV2aWNlOjpOb3RPcGVuOworICAgIHJldHVybiBRU2hhcmVkTWVtb3J5OjpSZWFkV3JpdGU7
CiB9CiAKIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShjb25z
dCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQpAQCAtMTA5LDQ1ICsxMTcs
MzYgQEAgUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGNvbnN0
IEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHAKICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIFFJT0RldmljZTo6T3Blbk1vZGUgb3Blbk1vZGUgPSBt
YXBQcm90ZWN0aW9uKHByb3RlY3Rpb24pOwotCi0gICAgTWFwcGVkTWVtb3J5KiBtbSA9IG1hcHBl
ZE1lbW9yeVBvb2wtPm1hcEZpbGUoUVN0cmluZyhoYW5kbGUubV9maWxlTmFtZSksIGhhbmRsZS5t
X3NpemUsIG9wZW5Nb2RlKTsKLQogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9y
eShhZG9wdFJlZihuZXcgU2hhcmVkTWVtb3J5KSk7CisgICAgUVNoYXJlZE1lbW9yeSogaW1wbCA9
IG5ldyBRU2hhcmVkTWVtb3J5KFFTdHJpbmcoaGFuZGxlLm1fa2V5KSk7CisgICAgYm9vbCBhdHRh
Y2hlZCA9IGltcGwtPmF0dGFjaChhY2Nlc3NNb2RlKHByb3RlY3Rpb24pKTsKKyAgICBBU1NFUlRf
VU5VU0VEKGF0dGFjaGVkLCBhdHRhY2hlZCk7CisgICAgc2hhcmVkTWVtb3J5LT5tX2ltcGwgPSBp
bXBsOworICAgIEFTU0VSVChoYW5kbGUubV9zaXplID09IGltcGwtPnNpemUoKSk7CiAgICAgc2hh
cmVkTWVtb3J5LT5tX3NpemUgPSBoYW5kbGUubV9zaXplOwotICAgIHNoYXJlZE1lbW9yeS0+bV9k
YXRhID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4obW0tPmRhdGEoKSk7CisgICAgc2hhcmVkTWVt
b3J5LT5tX2RhdGEgPSBpbXBsLT5kYXRhKCk7CiAKICAgICByZXR1cm4gc2hhcmVkTWVtb3J5LnJl
bGVhc2UoKTsKIH0KIAogU2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5KCkKIHsKLSAgICBpZiAo
IW1fZGF0YSkgewotICAgICAgICAvLyBPd25lcnNoaXAgb2YgdGhlIG1hcHBlZCBtZW1vcnkgaGFz
IGJlZW4gcGFzc2VkLgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTWFwcGVkTWVtb3J5
KiBtYXBwZWRNZW1vcnkgPSBtYXBwZWRNZW1vcnlQb29sLT5zZWFyY2hGb3JNYXBwZWRNZW1vcnko
cmVpbnRlcnByZXRfY2FzdDx1Y2hhcio+KG1fZGF0YSkpOwotICAgIGlmIChtYXBwZWRNZW1vcnkp
Ci0gICAgICAgIG1hcHBlZE1lbW9yeS0+bWFya0ZyZWUoKTsKKyAgICAvLyBtX2ltcGwgbXVzdCBi
ZSBub3QgbnVsbCBhbmQgaXQgbXVzdCBwb2ludHMgdG8gYSB2YWxpZCBRU2hhcmVkTWVtb3J5IG9i
amVjdC4KKyAgICBBU1NFUlQocW9iamVjdF9jYXN0PFFTaGFyZWRNZW1vcnkqPihtX2ltcGwpKTsK
KyAgICBkZWxldGUgbV9pbXBsOwogfQogCiBib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxl
KEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiB7Ci0gICAgQVNTRVJUKGhh
bmRsZS5tX2ZpbGVOYW1lLmlzTnVsbCgpKTsKLSAgICBBU1NFUlQoIWhhbmRsZS5tX3NpemUpOwor
ICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUubV9rZXkuaXNOdWxsKCkpOworICAgIEFTU0VS
VF9BUkcoaGFuZGxlLCAhaGFuZGxlLm1fc2l6ZSk7CiAKLSAgICBNYXBwZWRNZW1vcnkqIG1tID0g
bWFwcGVkTWVtb3J5UG9vbC0+c2VhcmNoRm9yTWFwcGVkTWVtb3J5KHJlaW50ZXJwcmV0X2Nhc3Q8
dWNoYXIqPihtX2RhdGEpKTsKLQotICAgIGlmICghbW0pCisgICAgUVN0cmluZyBrZXkgPSBtX2lt
cGwtPmtleSgpOworICAgIGlmIChrZXkuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGhhbmRsZS5tX2ZpbGVOYW1lID0gbW0tPmZpbGUtPmZpbGVOYW1lKCk7CisgICAgaGFu
ZGxlLm1fa2V5ID0gU3RyaW5nKGtleSk7CiAgICAgaGFuZGxlLm1fc2l6ZSA9IG1fc2l6ZTsKIAot
ICAgIC8vIEhhbmQgb2ZmIG93bmVyc2hpcCBvZiB0aGUgbWFwcGVkIG1lbW9yeSB0byB0aGUgcmVj
ZWl2aW5nIHByb2Nlc3MuCi0gICAgbV9kYXRhID0gMDsKLQogICAgIHJldHVybiB0cnVlOwogfQog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>