<?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>125674</bug_id>
          
          <creation_ts>2013-12-12 20:23:40 -0800</creation_ts>
          <short_desc>Fix unsafe memory load/store from the argument encoder/decoder affecting ARM</short_desc>
          <delta_ts>2015-03-04 01:42:27 -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>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>
          
          <blocked>108645</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>darin</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>959448</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-12 20:23:40 -0800</bug_when>
    <thetext>[ARM] Fix unsafe memory load/store from the argument encoder/decoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959454</commentid>
    <comment_count>1</comment_count>
      <attachid>219147</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-12 20:43:52 -0800</bug_when>
    <thetext>Created attachment 219147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959455</commentid>
    <comment_count>2</comment_count>
      <attachid>219147</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-12 20:55:31 -0800</bug_when>
    <thetext>Comment on attachment 219147
Patch

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

&gt; Source/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp:130
&gt; +static void decodeValueFromBuffer(Type&amp; value, uint8_t*&amp; buffer)

I don’t think that a pointer that we advance should be called “buffer”, because I think the word buffer refers to the entire buffer, not to a pointer within it. That’s why I think Anders was using the name “buffer position”. I would suggest naming the argument either bufferPosition or position.

&gt; Source/WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp:135
&gt;      uint8_t* buffer = grow(sizeof(n), sizeof(n));
&gt; -    
&gt; -    *reinterpret_cast&lt;bool*&gt;(buffer) = n;
&gt; +    copyValueToBuffer(n, buffer);

I would write these without the local variable:

    copyValueToBuffer(n, grow(sizeof(n), sizeof(n));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959456</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-12 20:55:54 -0800</bug_when>
    <thetext>Since the code change is in platform-independent code, the bug title should not have a platform prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959494</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-12 22:55:15 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Since the code change is in platform-independent code, the bug title should not have a platform prefix.

Oh right, my bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959495</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-12 23:01:53 -0800</bug_when>
    <thetext>Committed r160529: &lt;http://trac.webkit.org/changeset/160529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959496</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-12-12 23:04:26 -0800</bug_when>
    <thetext>Thanks for the review!

&gt; I would write these without the local variable:
&gt; 
&gt;     copyValueToBuffer(n, grow(sizeof(n), sizeof(n));

I am always on the edge in those cases.
In my opinion nested function calls sometime make the code harder to follow. I am also not a big fan of them due to the undefined order of evaluation between compilers/platforms.

In this case, the two sizeof() already add a lot of noise. I prefer to leave it on two lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959551</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-13 07:56:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; In my opinion nested function calls sometime make the code harder to follow.

I agree.

&gt; I am also not a big fan of them due to the undefined order of evaluation between compilers/platforms.

Yes, I avoid them when the functions have side effects for that reason.

&gt; In this case, the two sizeof() already add a lot of noise.

Yes, I think I’d fix that with an overload of the grow function.

&gt; I prefer to leave it on two lines.

OK with me.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219147</attachid>
            <date>2013-12-12 20:43:52 -0800</date>
            <delta_ts>2013-12-12 20:55:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125674-20131212204352.patch</filename>
            <type>text/plain</type>
            <size>7338</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwNTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDE1NTFhYWRlMjVlMTNl
NzA3Y2Q4ZTNjYTVmYzM2MDQ1YzI0YjlmMy4uY2RlN2JjYTM2NTY0NzVhNjgzNTA4ZWE0NDFjMThm
ZTJhMDQwNTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTEyLTEyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtBUk1dIEZpeCB1
bnNhZmUgbWVtb3J5IGxvYWQvc3RvcmUgZnJvbSB0aGUgYXJndW1lbnQgZW5jb2Rlci9kZWNvZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2NzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZXBlbmRp
bmcgb24gdGhlIENQVSBhbmQgQ1BVIGNvbmZpZywgbG9hZCBhbmQgc3RvcmUgbWF5IGhhdmUgdG8g
YmUgYWxpZ25lZC4KKyAgICAgICAgVGhlIGJ1ZmZlciBoYXMgbm8gcGFydGljdWxhciBhbGlnbm1l
bnQgd2hpY2ggY2FuIGNhdXNlIHByb2JsZW1zLgorCisgICAgICAgIEluIHRoaXMgY2FzZSwgb24g
QVJNdjcsIHN0cmQgYW5kIGxkcmQgY2FuIGhhdmUgYWxpZ25tZW50IHJlc3RyaWN0aW9uIG9uIDE2
IGJ5dGVzLgorICAgICAgICBUaGUgY29kZSBlbmNvZGluZyBkb3VibGUgYW5kIDY0IGJpdHMgaW50
ZWdlcnMgd2FzIGNhdXNpbmcgcHJvYmxlbS4KKworICAgICAgICBUbyBhdm9pZCBwcm9ibGVtcywg
dGhlIGVuY29kZXIgYXJlIG1vZGlmaWVkIHRvIHVzZSBqdXN0IG1lbWNweS4gVGhlIGNvbXBpbGVy
IG9wdGltaXplCisgICAgICAgIHRoZW0gYXdheSBmb3IgdGhlIHJpZ2h0IGluc3RydWN0aW9uIChj
bGFuZyB1c2VzIHR3byBsZHIvc3RyIGluIHRoZSBjYXNlIG9mIDY0Yml0cyB2YWx1ZXMgb24gQVJN
djcpLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERlY29kZXIuY3BwOgor
ICAgICAgICAoQ29yZUlQQzo6ZGVjb2RlVmFsdWVGcm9tQnVmZmVyKToKKyAgICAgICAgKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0FyZ3VtZW50RW5jb2Rlci5jcHA6CisgICAgICAgIChDb3JlSVBDOjpjb3B5VmFsdWVUb0J1ZmZl
cik6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI6OmVuY29kZSk6CisKIDIwMTMt
MTItMTIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZml4IGZvciAzMi1iaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAKaW5kZXggYzc1NjIyNzllNmRiZjNjMzM0YTZiMTZh
MTU0ZmE3NzY4NzQxZjFiYi4uZGQzYjhiMWYzOTE2ZmRiNDllYzgzYmJhZDY0NjE3YTJkNGU4M2E4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudERl
Y29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRE
ZWNvZGVyLmNwcApAQCAtMTI2LDEzICsxMjYsMTkgQEAgYm9vbCBBcmd1bWVudERlY29kZXI6OmRl
Y29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0YXRpYyB2
b2lkIGRlY29kZVZhbHVlRnJvbUJ1ZmZlcihUeXBlJiB2YWx1ZSwgdWludDhfdComIGJ1ZmZlcikK
K3sKKyAgICBtZW1jcHkoJnZhbHVlLCBidWZmZXIsIHNpemVvZih2YWx1ZSkpOworICAgIGJ1ZmZl
ciArPSBzaXplb2YoVHlwZSk7Cit9CisKIGJvb2wgQXJndW1lbnREZWNvZGVyOjpkZWNvZGUoYm9v
bCYgcmVzdWx0KQogewogICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0
KSwgc2l6ZW9mKHJlc3VsdCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgcmVz
dWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Ym9vbCo+KG1fYnVmZmVyUG9zKTsKLSAgICBtX2J1ZmZl
clBvcyArPSBzaXplb2YocmVzdWx0KTsKKyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0
LCBtX2J1ZmZlclBvcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE0MSw4ICsxNDcsNyBA
QCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQ4X3QmIHJlc3VsdCkKICAgICBpZiAo
IWFsaWduQnVmZmVyUG9zaXRpb24oc2l6ZW9mKHJlc3VsdCksIHNpemVvZihyZXN1bHQpKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KG1fYnVmZmVyUG9zKTsKLSAgICBtX2J1ZmZlclBvcyArPSBzaXplb2YocmVzdWx0KTsK
KyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTE1MSw4ICsxNTYsNyBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6
ZGVjb2RlKHVpbnQxNl90JiByZXN1bHQpCiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNp
emVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0X3B0cjx1aW50MTZfdCo+KG1fYnVmZmVyUG9z
KTsKLSAgICBtX2J1ZmZlclBvcyArPSBzaXplb2YocmVzdWx0KTsKKyAgICBkZWNvZGVWYWx1ZUZy
b21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTE2MCw5ICsxNjQsOCBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQzMl90JiBy
ZXN1bHQpCiB7CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBz
aXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICByZXN1bHQg
PSAqcmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDMyX3QqPihtX2J1ZmZlclBvcyk7Ci0gICAgbV9i
dWZmZXJQb3MgKz0gc2l6ZW9mKHJlc3VsdCk7CisKKyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIo
cmVzdWx0LCBtX2J1ZmZlclBvcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE3MSw4ICsx
NzQsNyBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKHVpbnQ2NF90JiByZXN1bHQpCiAg
ICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICByZXN1bHQgPSAqcmVpbnRlcnBy
ZXRfY2FzdF9wdHI8dWludDY0X3QqPihtX2J1ZmZlclBvcyk7Ci0gICAgbV9idWZmZXJQb3MgKz0g
c2l6ZW9mKHJlc3VsdCk7CisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZm
ZXJQb3MpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xODEsOCArMTgzLDcgQEAgYm9vbCBB
cmd1bWVudERlY29kZXI6OmRlY29kZShpbnQzMl90JiByZXN1bHQpCiAgICAgaWYgKCFhbGlnbkJ1
ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdF9wdHI8dWlu
dDMyX3QqPihtX2J1ZmZlclBvcyk7Ci0gICAgbV9idWZmZXJQb3MgKz0gc2l6ZW9mKHJlc3VsdCk7
CisgICAgZGVjb2RlVmFsdWVGcm9tQnVmZmVyKHJlc3VsdCwgbV9idWZmZXJQb3MpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0xOTAsOSArMTkxLDggQEAgYm9vbCBBcmd1bWVudERlY29kZXI6
OmRlY29kZShpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9u
KHNpemVvZihyZXN1bHQpLCBzaXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAKLSAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDY0X3QqPihtX2J1
ZmZlclBvcyk7Ci0gICAgbV9idWZmZXJQb3MgKz0gc2l6ZW9mKHJlc3VsdCk7CisKKyAgICBkZWNv
ZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTIwMCw5ICsyMDAsOCBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKGZs
b2F0JiByZXN1bHQpCiB7CiAgICAgaWYgKCFhbGlnbkJ1ZmZlclBvc2l0aW9uKHNpemVvZihyZXN1
bHQpLCBzaXplb2YocmVzdWx0KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBy
ZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdF9wdHI8ZmxvYXQqPihtX2J1ZmZlclBvcyk7Ci0gICAg
bV9idWZmZXJQb3MgKz0gc2l6ZW9mKHJlc3VsdCk7CisKKyAgICBkZWNvZGVWYWx1ZUZyb21CdWZm
ZXIocmVzdWx0LCBtX2J1ZmZlclBvcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIxMSw4
ICsyMTAsNyBAQCBib29sIEFyZ3VtZW50RGVjb2Rlcjo6ZGVjb2RlKGRvdWJsZSYgcmVzdWx0KQog
ICAgIGlmICghYWxpZ25CdWZmZXJQb3NpdGlvbihzaXplb2YocmVzdWx0KSwgc2l6ZW9mKHJlc3Vs
dCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgcmVzdWx0ID0gKnJlaW50ZXJw
cmV0X2Nhc3RfcHRyPGRvdWJsZSo+KG1fYnVmZmVyUG9zKTsKLSAgICBtX2J1ZmZlclBvcyArPSBz
aXplb2YocmVzdWx0KTsKKyAgICBkZWNvZGVWYWx1ZUZyb21CdWZmZXIocmVzdWx0LCBtX2J1ZmZl
clBvcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQXJndW1lbnRFbmNvZGVyLmNwcAppbmRleCA3Nzc1MzZmZmE3ZDQ2NjI0
MmZlMjZjYmQxYjAxMjE5Nzc5MjllMjY2Li42MmUzNTg2ZDQ1ZjQzYzE1MWJhMGQ1YjM3MTJmODgy
NTdlMTY1NzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Fy
Z3VtZW50RW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9B
cmd1bWVudEVuY29kZXIuY3BwCkBAIC0xMjMsNjcgKzEyMyw2NCBAQCB2b2lkIEFyZ3VtZW50RW5j
b2Rlcjo6ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoY29uc3QgRGF0YVJlZmVyZW5jZSYg
ZGF0YVJlZgogICAgIGVuY29kZUZpeGVkTGVuZ3RoRGF0YShkYXRhUmVmZXJlbmNlLmRhdGEoKSwg
ZGF0YVJlZmVyZW5jZS5zaXplKCksIDEpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgor
c3RhdGljIHZvaWQgY29weVZhbHVlVG9CdWZmZXIoVHlwZSB2YWx1ZSwgdWludDhfdCogYnVmZmVy
KQoreworICAgIG1lbWNweShidWZmZXIsICZ2YWx1ZSwgc2l6ZW9mKFR5cGUpKTsKK30KKwogdm9p
ZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShib29sIG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVy
ID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7Ci0gICAgCi0gICAgKnJlaW50ZXJwcmV0X2Nh
c3Q8Ym9vbCo+KGJ1ZmZlcikgPSBuOworICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7
CiB9CiAKIHZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUodWludDhfdCBuKQogewogICAgIHVp
bnQ4X3QqIGJ1ZmZlciA9IGdyb3coc2l6ZW9mKG4pLCBzaXplb2YobikpOwotCi0gICAgKnJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGJ1ZmZlcikgPSBuOworICAgIGNvcHlWYWx1ZVRvQnVmZmVy
KG4sIGJ1ZmZlcik7CiB9CiAKIHZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUodWludDE2X3Qg
bikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsK
LQotICAgICpyZWludGVycHJldF9jYXN0X3B0cjx1aW50MTZfdCo+KGJ1ZmZlcikgPSBuOworICAg
IGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7CiB9CiAKIHZvaWQgQXJndW1lbnRFbmNvZGVy
OjplbmNvZGUodWludDMyX3QgbikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBncm93KHNpemVv
ZihuKSwgc2l6ZW9mKG4pKTsKLSAgICAKLSAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDMy
X3QqPihidWZmZXIpID0gbjsKKyAgICBjb3B5VmFsdWVUb0J1ZmZlcihuLCBidWZmZXIpOwogfQog
CiB2b2lkIEFyZ3VtZW50RW5jb2Rlcjo6ZW5jb2RlKHVpbnQ2NF90IG4pCiB7CiAgICAgdWludDhf
dCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7Ci0gICAgCi0gICAgKnJlaW50
ZXJwcmV0X2Nhc3RfcHRyPHVpbnQ2NF90Kj4oYnVmZmVyKSA9IG47CisgICAgY29weVZhbHVlVG9C
dWZmZXIobiwgYnVmZmVyKTsKIH0KIAogdm9pZCBBcmd1bWVudEVuY29kZXI6OmVuY29kZShpbnQz
Ml90IG4pCiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihu
KSk7Ci0gICAgCi0gICAgKnJlaW50ZXJwcmV0X2Nhc3RfcHRyPGludDMyX3QqPihidWZmZXIpID0g
bjsKKyAgICBjb3B5VmFsdWVUb0J1ZmZlcihuLCBidWZmZXIpOwogfQogCiB2b2lkIEFyZ3VtZW50
RW5jb2Rlcjo6ZW5jb2RlKGludDY0X3QgbikKIHsKICAgICB1aW50OF90KiBidWZmZXIgPSBncm93
KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKLSAgICAKLSAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8
aW50NjRfdCo+KGJ1ZmZlcikgPSBuOworICAgIGNvcHlWYWx1ZVRvQnVmZmVyKG4sIGJ1ZmZlcik7
CiB9CiAKIHZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUoZmxvYXQgbikKIHsKICAgICB1aW50
OF90KiBidWZmZXIgPSBncm93KHNpemVvZihuKSwgc2l6ZW9mKG4pKTsKLQotICAgICpyZWludGVy
cHJldF9jYXN0X3B0cjxmbG9hdCo+KGJ1ZmZlcikgPSBuOworICAgIGNvcHlWYWx1ZVRvQnVmZmVy
KG4sIGJ1ZmZlcik7CiB9CiAKIHZvaWQgQXJndW1lbnRFbmNvZGVyOjplbmNvZGUoZG91YmxlIG4p
CiB7CiAgICAgdWludDhfdCogYnVmZmVyID0gZ3JvdyhzaXplb2YobiksIHNpemVvZihuKSk7Ci0K
LSAgICAqcmVpbnRlcnByZXRfY2FzdF9wdHI8ZG91YmxlKj4oYnVmZmVyKSA9IG47CisgICAgY29w
eVZhbHVlVG9CdWZmZXIobiwgYnVmZmVyKTsKIH0KIAogdm9pZCBBcmd1bWVudEVuY29kZXI6OmFk
ZEF0dGFjaG1lbnQoY29uc3QgQXR0YWNobWVudCYgYXR0YWNobWVudCkK
</data>
<flag name="review"
          id="242735"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>