<?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>18822</bug_id>
          
          <creation_ts>2008-04-30 19:28:49 -0700</creation_ts>
          <short_desc>SQUIRRELFISH: incorrect eval used in some cases</short_desc>
          <delta_ts>2008-05-02 19:32:18 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://nerget.com/jstests/eval.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>18624</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>79315</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-04-30 19:28:49 -0700</bug_when>
    <thetext>In ToT SquirrelFish one of the eval tests in the linked testcase fails :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79318</commentid>
    <comment_count>1</comment_count>
      <attachid>20906</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-30 19:47:58 -0700</bug_when>
    <thetext>Created attachment 20906
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79321</commentid>
    <comment_count>2</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-30 23:07:24 -0700</bug_when>
    <thetext>This bug occurs because we don&apos;t create as many ExecStates as we used to. In particular, the scope chain of the current ExecState in Machine::privateExecute may not be the current scope chain. However, all ExecState::lexicalGlobalObject() does is get the top of its ScopeChain, so we should just replace the use of ExecState::lexicalGlobalObject() with scopeChain-&gt;bottom() in op_call_eval.

This also means that other uses of ExecState::lexicalGlobalObject() are wrong for cross-window function calls. Most of them are used for getting prototypes, but there are others, e.g. setting up the scope chain in FunctionObjectImp::construct(). We can&apos;t fix all of the others yet, because we pass around an ExecState rather than a ScopeChainNode*.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79324</commentid>
    <comment_count>3</comment_count>
      <attachid>20908</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-30 23:19:12 -0700</bug_when>
    <thetext>Created attachment 20908
Proposed patch

Here&apos;s a patch that fixes the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79331</commentid>
    <comment_count>4</comment_count>
      <attachid>20908</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-01 00:02:12 -0700</bug_when>
    <thetext>Comment on attachment 20908
Proposed patch

This patch is a 0.2% or 0.3% performance regression, and if I move things to a separate function it is much worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79358</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-01 08:31:41 -0700</bug_when>
    <thetext>I&apos;d recommend holding off on this one for now. The real bug here is that Exec::lexicalGlobalObject returns an incorrect value. I&apos;m working on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79359</commentid>
    <comment_count>6</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-01 08:53:03 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I&apos;d recommend holding off on this one for now. The real bug here is that
&gt; Exec::lexicalGlobalObject returns an incorrect value. I&apos;m working on that.

Nice. I&apos;ll turn Oliver&apos;s tests into layout tests for when you get it working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79514</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-02 17:55:00 -0700</bug_when>
    <thetext>I looked at this further, and Cameron was right. (Sorry!) Fixing lexical global object access inside the machine is a separate task from fixing it elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79515</commentid>
    <comment_count>8</comment_count>
      <attachid>20938</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-02 17:55:39 -0700</bug_when>
    <thetext>Created attachment 20938
Patch

Fixed lexical global object access inside the machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79517</commentid>
    <comment_count>9</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-02 18:01:03 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=20938) [edit]
&gt; Patch
&gt; 
&gt; Fixed lexical global object access inside the machine.

+    inline JSGlobalObject* ScopeChainNode::globalObject() const
+    {
+        JSGlobalObject* globalObject = static_cast&lt;JSGlobalObject*&gt;(bottom());
+        ASSERT(globalObject-&gt;isGlobalObject());
+        return globalObject;
+    }

Shouldn&apos;t the cast be after the ASSERT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79520</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-02 18:29:30 -0700</bug_when>
    <thetext>&gt; Shouldn&apos;t the cast be after the ASSERT?

I find that

JSGlobalObject* globalObject = static_cast&lt;JSGlobalObject*&gt;(bottom());
ASSERT(globalObject-&gt;isGlobalObject());

reads better than

JSObject* o = bottom();
ASSERT(o-&gt;isGlobalObject());
JSGlobalObject* globalObject = static_cast&lt;JSGlobalObject*&gt;(o);

and I don&apos;t like 

ASSERT(bottom()-&gt;isGlobalObject());
JSGlobalObject* globalObject = static_cast&lt;JSGlobalObject*&gt;(bottom());

because it does a double call in debug builds. (Makes debug builds needlessly slow. Hard to step through.)

Is there an advantage to doing the ASSERT before the cast?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79521</commentid>
    <comment_count>11</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-05-02 18:45:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Is there an advantage to doing the ASSERT before the cast?

I just asked because it seems to be the prevailing style, and the method you are replacing in ExecState does that. Nothing other than a style question, really.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79526</commentid>
    <comment_count>12</comment_count>
      <attachid>20938</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-05-02 18:57:09 -0700</bug_when>
    <thetext>Comment on attachment 20938
Patch

r=me, although i&apos;d like there to be a layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79530</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-02 19:27:27 -0700</bug_when>
    <thetext>Oliver agreed on IRC that LayoutTests/fast/js/eval-cross-window.html is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79533</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-05-02 19:32:18 -0700</bug_when>
    <thetext>r 32831</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20906</attachid>
            <date>2008-04-30 19:47:58 -0700</date>
            <delta_ts>2008-04-30 19:47:58 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>testcase.html</filename>
            <type>text/html</type>
            <size>669</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+VGVzdCBjYXNlPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KPHNj
cmlwdD4KZnVuY3Rpb24gcHJpbnQobWVzc2FnZSkgCnsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSArICdcbicpKTsKfQoKaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKPC9zY3JpcHQ+CjxpZnJhbWUgaWQ9aSBzcmM9
J2Fib3V0OmJsYW5rJyB3aWR0aD0xMCBoZWlnaHQ9MTA+CjwvaWZyYW1lPgo8cHJlIGlkPWNvbnNv
bGU+PC9wcmU+Cgo8c2NyaXB0PgoKdmFyIG90aGVyV2luZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2knKS5jb250ZW50V2luZG93OwoKb3RoZXJXaW5kb3cudHN0ID0gJ0ZBSUw6IEdsb2Jh
bCBBY2Nlc3MnOwp3aW5kb3cucmVzID0gJ0ZBSUwnOwpvdGhlcldpbmRvdy5ldmFsKCJmdW5jdGlv
biB0ZXN0ZnVuYzMoKSB7IHZhciB0c3QgPSAnUEFTUzogTG9jYWwgIEFjY2Vzcyc7IHdpbmRvdy5y
ZXMgPSBldmFsKCd0c3QnKTsgfTsiKTsKb3RoZXJXaW5kb3cudGVzdGZ1bmMzKCk7CnByaW50KG90
aGVyV2luZG93LnJlcyk7Cgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20908</attachid>
            <date>2008-04-30 23:19:12 -0700</date>
            <delta_ts>2008-05-02 17:55:39 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>eval.diff</filename>
            <type>text/plain</type>
            <size>1595</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyNzU3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMDQt
MzAgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDE4ODIyOiBTUVVJUlJF
TEZJU0g6IGluY29ycmVjdCBldmFsIHVzZWQgaW4gc29tZSBjYXNlcworICAgICAgICA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODIyPgorCisgICAgICAgIEdldCB0
aGUgY3VycmVudCBsZXhpY2FsIGdsb2JhbCBvYmplY3QgZnJvbSB0aGUgc2NvcGUgY2hhaW4gaW5z
dGVhZCBvZiAKKyAgICAgICAgZnJvbSB0aGUgRXhlY1N0YXRlLCB3aGljaCBtYXkgYmUgb3V0LW9m
LWRhdGUuCisKKyAgICAgICAgKiBWTS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEtKUzo6TWFjaGlu
ZTo6cHJpdmF0ZUV4ZWN1dGUpOgorCiAyMDA4LTA0LTMwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVsZWFzZSBidWlsZCBmaXg6IEFsd2F5cyBjb21waWxl
IGluICJpc0dsb2JhbE9iamVjdCIsIHNpbmNlIGl0J3MKSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFZNL01hY2hpbmUuY3BwCShyZXZpc2lvbiAzMjc1NSkKKysrIFZNL01hY2hp
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA5LDcgKzE0MDksMTAgQEAgSlNWYWx1ZSogTWFj
aGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICBKU1ZhbHVlKiB2ID0gcltyMV0u
dS5qc1ZhbHVlOwogICAgICAgICBKU1ZhbHVlKiBiYXNlID0gcltyMl0udS5qc1ZhbHVlOwogICAg
ICAgICAKLSAgICAgICAgaWYgKGJhc2UgPT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpICYm
IHYgPT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5ldmFsRnVuY3Rpb24oKSkgeworICAg
ICAgICBBU1NFUlQoc2NvcGVDaGFpbi0+Ym90dG9tKCktPmlzR2xvYmFsT2JqZWN0KCkpOworICAg
ICAgICBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpT
R2xvYmFsT2JqZWN0Kj4oc2NvcGVDaGFpbi0+Ym90dG9tKCkpOworICAgICAgICAKKyAgICAgICAg
aWYgKGJhc2UgPT0gbGV4aWNhbEdsb2JhbE9iamVjdCAmJiB2ID09IGxleGljYWxHbG9iYWxPYmpl
Y3QtPmV2YWxGdW5jdGlvbigpKSB7CiAgICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSBy
IC0gKCpyZWdpc3RlckJhc2UpOwogCiAgICAgICAgICAgICBpbnQgdGhpc1JlZ2lzdGVyID0gKGNv
ZGVCbG9jay0+Y29kZVR5cGUgPT0gRnVuY3Rpb25Db2RlKSA/IC0oY29kZUJsb2NrLT5udW1WYXJz
ICsgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKSA6IFByb2dyYW1Db2RlVGhpc1JlZ2lzdGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20938</attachid>
            <date>2008-05-02 17:55:39 -0700</date>
            <delta_ts>2008-05-02 18:57:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-lexical-global-object.txt</filename>
            <type>text/plain</type>
            <size>5558</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMyODMw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDgtMDUt
MDIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeGVkIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgyMgorICAgICAgICBTUVVJUlJFTEZJU0g6
IGluY29ycmVjdCBldmFsIHVzZWQgaW4gc29tZSBjYXNlcworICAgICAgICAKKyAgICAgICAgQ2hh
bmdlZCBhbGwgY29kZSBpbnNpZGUgdGhlIG1hY2hpbmUgdG8gZmV0Y2ggdGhlIGxleGljYWwgZ2xv
YmFsIG9iamVjdAorICAgICAgICBkaXJlY3RseSBmcm9tIHRoZSBzY29wZSBjaGFpbiwgaW5zdGVh
ZCBvZiBmcm9tIHRoZSBFeGVjU3RhdGUuCisgICAgICAgIAorICAgICAgICBDbGllbnRzIHdobyBm
ZXRjaCB0aGUgbGV4aWNhbCBnbG9iYWwgb2JqZWN0IHRocm91Z2ggdGhlIEV4ZWNTdGF0ZQorICAg
ICAgICBzdGlsbCBkb24ndCB3b3JrLgorICAgICAgICAKKyAgICAgICAgU3VuU3BpZGVyIHJlcG9y
dHMgbm8gY2hhbmdlLgorCisgICAgICAgICogVk0vTWFjaGluZS5jcHA6CisgICAgICAgIChLSlM6
Ok1hY2hpbmU6OnByaXZhdGVFeGVjdXRlKTogRmV0Y2ggdGhlIGxleGljYWwgZ2xvYmFsIG9iamVj
dCBmcm9tCisgICAgICAgIHRoZSBzY29wZSBjaGFpbi4KKyAgICAgICAgCisgICAgICAgICoga2pz
L0V4ZWNTdGF0ZS5oOgorICAgICAgICAoS0pTOjpFeGVjU3RhdGU6OkV4ZWNTdGF0ZTo6bGV4aWNh
bEdsb2JhbE9iamVjdCk6IE1vdmVkIHRoZSBsb2dpYyBmb3IKKyAgICAgICAgdGhpcyBmdW5jdGlv
biBpbnRvIFNjb3BlQ2hhaW5Ob2RlLCBidXQga2VwdCB0aGlzIGZ1bmN0aW9uIGFyb3VuZCB0bwor
ICAgICAgICBzdXBwb3J0IGV4aXN0aW5nIGNsaWVudHMuCisKIDIwMDgtMDUtMDIgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBP
bGl2ZXIgSHVudC4KSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL01hY2hp
bmUuY3BwCShyZXZpc2lvbiAzMjgyOSkKKysrIFZNL01hY2hpbmUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NDMsMTQgKzc0MywxNCBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShF
eGVjdXRpCiAgICAgfQogICAgIEJFR0lOX09QQ09ERShvcF9uZXdfb2JqZWN0KSB7CiAgICAgICAg
IGludCByMCA9ICgrK3ZQQyktPnUub3BlcmFuZDsKLSAgICAgICAgcltyMF0udS5qc1ZhbHVlID0g
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RDb25zdHJ1Y3RvcigpLT5jb25zdHJ1
Y3QoZXhlYywgZXhlYy0+ZW1wdHlMaXN0KCkpOworICAgICAgICByW3IwXS51LmpzVmFsdWUgPSBz
Y29wZUNoYWluLT5nbG9iYWxPYmplY3QoKS0+b2JqZWN0Q29uc3RydWN0b3IoKS0+Y29uc3RydWN0
KGV4ZWMsIGV4ZWMtPmVtcHR5TGlzdCgpKTsKICAgICAgICAgCiAgICAgICAgICsrdlBDOwogICAg
ICAgICBORVhUX09QQ09ERTsKICAgICB9CiAgICAgQkVHSU5fT1BDT0RFKG9wX25ld19hcnJheSkg
ewogICAgICAgICBpbnQgcjAgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7Ci0gICAgICAgIHJbcjBdLnUu
anNWYWx1ZSA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJyYXlDb25zdHJ1Y3Rvcigp
LT5jb25zdHJ1Y3QoZXhlYywgZXhlYy0+ZW1wdHlMaXN0KCkpOworICAgICAgICByW3IwXS51Lmpz
VmFsdWUgPSBzY29wZUNoYWluLT5nbG9iYWxPYmplY3QoKS0+YXJyYXlDb25zdHJ1Y3RvcigpLT5j
b25zdHJ1Y3QoZXhlYywgZXhlYy0+ZW1wdHlMaXN0KCkpOwogICAgICAgICAKICAgICAgICAgKyt2
UEM7CiAgICAgICAgIE5FWFRfT1BDT0RFOwpAQCAtNzU4LDcgKzc1OCw3IEBAIEpTVmFsdWUqIE1h
Y2hpbmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGkKICAgICBCRUdJTl9PUENPREUob3BfbmV3X3Jl
Z2V4cCkgewogICAgICAgICBpbnQgZHN0ID0gKCsrdlBDKS0+dS5vcGVyYW5kOwogICAgICAgICBp
bnQgcmVnRXhwID0gKCsrdlBDKS0+dS5vcGVyYW5kOwotICAgICAgICByW2RzdF0udS5qc1ZhbHVl
ID0gbmV3IFJlZ0V4cEltcChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFByb3Rv
dHlwZSgpLCBjb2RlQmxvY2stPnJlZ2V4cHNbcmVnRXhwXSk7CisgICAgICAgIHJbZHN0XS51Lmpz
VmFsdWUgPSBuZXcgUmVnRXhwSW1wKHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdCgpLT5yZWdFeHBQ
cm90b3R5cGUoKSwgY29kZUJsb2NrLT5yZWdleHBzW3JlZ0V4cF0pOwogCiAgICAgICAgICsrdlBD
OwogICAgICAgICBORVhUX09QQ09ERTsKQEAgLTE0MTMsNyArMTQxMyw3IEBAIEpTVmFsdWUqIE1h
Y2hpbmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGkKICAgICAgICAgSlNWYWx1ZSogdiA9IHJbcjFd
LnUuanNWYWx1ZTsKICAgICAgICAgSlNWYWx1ZSogYmFzZSA9IHJbcjJdLnUuanNWYWx1ZTsKICAg
ICAgICAgCi0gICAgICAgIGlmIChiYXNlID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSAm
JiB2ID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZXZhbEZ1bmN0aW9uKCkpIHsKKyAg
ICAgICAgaWYgKGJhc2UgPT0gc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCkgJiYgdiA9PSBzY29w
ZUNoYWluLT5nbG9iYWxPYmplY3QoKS0+ZXZhbEZ1bmN0aW9uKCkpIHsKICAgICAgICAgICAgIGlu
dCByZWdpc3Rlck9mZnNldCA9IHIgLSAoKnJlZ2lzdGVyQmFzZSk7CiAKICAgICAgICAgICAgIGlu
dCB0aGlzUmVnaXN0ZXIgPSAoY29kZUJsb2NrLT5jb2RlVHlwZSA9PSBGdW5jdGlvbkNvZGUpID8g
LShjb2RlQmxvY2stPm51bVZhcnMgKyBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMpIDogUHJvZ3Jh
bUNvZGVUaGlzUmVnaXN0ZXI7CkBAIC0xNTY1LDcgKzE1NjUsNyBAQCBKU1ZhbHVlKiBNYWNoaW5l
Ojpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAgICAgICAgICAgICBpZiAocC0+aXNPYmplY3QoKSkK
ICAgICAgICAgICAgICAgICBwcm90b3R5cGUgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHApOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByb3RvdHlwZSA9IGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCk7CisgICAgICAgICAgICAgICAgcHJv
dG90eXBlID0gc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpOwog
ICAgICAgICAgICAgSlNPYmplY3QqIG5ld09iamVjdCA9IG5ldyBKU09iamVjdChwcm90b3R5cGUp
OwogICAgICAgICAgICAgclthcmd2XS51LmpzVmFsdWUgPSBuZXdPYmplY3Q7IC8vICJ0aGlzIiB2
YWx1ZQogCkluZGV4OiBranMvRXhlY1N0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL0V4ZWNTdGF0
ZS5oCShyZXZpc2lvbiAzMjgyOSkKKysrIGtqcy9FeGVjU3RhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNTcsOSArNTcsNyBAQCBuYW1lc3BhY2UgS0pTICB7CiAgICAgICAgIC8vIGZyb20gZHluYW1p
Y0dsb2JhbE9iamVjdCgpIGR1cmluZyBmdW5jdGlvbiBjYWxscyBhY3Jvc3MgZnJhbWVzLikKICAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIEV4ZWNTdGF0ZTo6bGV4aWNhbEdsb2JhbE9iamVjdCgpIGNv
bnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBtX3Njb3BlQ2hh
aW4tPmJvdHRvbSgpOwotICAgICAgICAgICAgQVNTRVJUKGlzR2xvYmFsT2JqZWN0KG9iamVjdCkp
OwotICAgICAgICAgICAgcmV0dXJuIChKU0dsb2JhbE9iamVjdCopb2JqZWN0OworICAgICAgICAg
ICAgcmV0dXJuIG1fc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIEpTT2JqZWN0KiBnbG9iYWxUaGlzVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2dsb2JhbFRoaXNWYWx1ZTsgfQpJbmRleDoga2pzL0pTR2xvYmFsT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0ga2pzL0pTR2xvYmFsT2JqZWN0LmgJKHJldmlzaW9uIDMyODI5KQorKysga2pzL0pTR2xv
YmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMTMgQEAgbmFtZXNwYWNl
IEtKUyB7CiAgICAgICAgIHJldHVybiBjaGVja1RpbWVvdXQoKTsKICAgICB9CiAKKyAgICBpbmxp
bmUgSlNHbG9iYWxPYmplY3QqIFNjb3BlQ2hhaW5Ob2RlOjpnbG9iYWxPYmplY3QoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0
PEpTR2xvYmFsT2JqZWN0Kj4oYm90dG9tKCkpOworICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0
LT5pc0dsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdDsKKyAgICB9
CisKIH0gLy8gbmFtZXNwYWNlIEtKUwogCiAjZW5kaWYgLy8gS0pTX0dsb2JhbE9iamVjdF9oCklu
ZGV4OiBranMvc2NvcGVfY2hhaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvc2NvcGVfY2hhaW4uaAko
cmV2aXNpb24gMzI4MjkpCisrKyBranMvc2NvcGVfY2hhaW4uaAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsNyBAQAogCiBuYW1lc3BhY2UgS0pTIHsKIAorICAgIGNsYXNzIEpTR2xvYmFsT2Jq
ZWN0OwogICAgIGNsYXNzIEpTT2JqZWN0OwogICAgIGNsYXNzIFNjb3BlQ2hhaW5JdGVyYXRvcjsK
ICAgICAKQEAgLTY1LDYgKzY2LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIFNjb3BlQ2hh
aW5JdGVyYXRvciBiZWdpbigpIGNvbnN0OwogICAgICAgICBTY29wZUNoYWluSXRlcmF0b3IgZW5k
KCkgY29uc3Q7CiAgICAgICAgIAorICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KCkgY29uc3Q7IC8vIGRlZmluZWQgaW4gSlNHbG9iYWxPYmplY3QuaAorICAgICAgICAKICNpZm5k
ZWYgTkRFQlVHICAgICAgICAKICAgICAgICAgdm9pZCBwcmludCgpIGNvbnN0OwogI2VuZGlmCkBA
IC0xNzMsNiArMTc2LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAgICAgICAgdm9pZCBwb3AoKSB7
IF9ub2RlID0gX25vZGUtPnBvcCgpOyB9CiAgICAgICAgIHZvaWQgY2xlYXIoKSB7IF9ub2RlLT5k
ZXJlZigpOyBfbm9kZSA9IDA7IH0KKyAgICAgICAgCisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBfbm9kZS0+Z2xvYmFsT2JqZWN0KCk7IH0KIAog
ICAgICAgICB2b2lkIG1hcmsoKSBjb25zdDsKIAo=
</data>
<flag name="review"
          id="9160"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>