<?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>101190</bug_id>
          
          <creation_ts>2012-11-05 00:37:12 -0800</creation_ts>
          <short_desc>[V8] Remove setDOMWrapper(wrapper, 0) from V8NPObject</short_desc>
          <delta_ts>2012-11-06 05:21:12 -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>WebCore JavaScript</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>101054</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758301</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 00:37:12 -0800</bug_when>
    <thetext>In bug 101054, we want to add an ASSERT() that guarantees that we don&apos;t pass 0 to setDOMWrapper(). On the other hand, V8NPObject.cpp is trying to pass 0 to setDOMWrapper() just before disposing a wrapper, which hits the ASSERT(). We should remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758302</commentid>
    <comment_count>1</comment_count>
      <attachid>172284</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 00:38:33 -0800</bug_when>
    <thetext>Created attachment 172284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758528</commentid>
    <comment_count>2</comment_count>
      <attachid>172284</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-05 07:47:24 -0800</bug_when>
    <thetext>Comment on attachment 172284
Patch

What if other folks have a reference to the v8 object?  After this change, won&apos;t they have a use-after-free if they try to access the wrapped object?

In the DOM case, we only remove objects from the wrapper map when we get a weak handle callback.  In the case of NP objects, we can remove them when asked to do so explicitly by the plugin (you might want to check that I&apos;m right about that---it&apos;s from memory).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758530</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 07:50:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 172284 [details])
&gt; What if other folks have a reference to the v8 object?  After this change, won&apos;t they have a use-after-free if they try to access the wrapped object?

Just after this setDOMWrapper(wrapper, 0), the wrapper handle is immediately disposed and cleared. This means that other folks should not have a reference to the V8 object, doesn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758554</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-05 08:25:53 -0800</bug_when>
    <thetext>&gt; Just after this setDOMWrapper(wrapper, 0), the wrapper handle is immediately disposed and cleared. This means that other folks should not have a reference to the V8 object, doesn&apos;t it?

No, that just means that we don&apos;t have a reference anymore.  There could be other handles to the object, either local or persistent or internal to the JS VM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758572</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 08:39:17 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Just after this setDOMWrapper(wrapper, 0), the wrapper handle is immediately disposed and cleared. This means that other folks should not have a reference to the V8 object, doesn&apos;t it?
&gt; 
&gt; No, that just means that we don&apos;t have a reference anymore.  There could be other handles to the object, either local or persistent or internal to the JS VM.

Yeah, makes sense... but that sounds like another problem. In bindings (even in V8NPObject.cpp), we do not do a null check for the result of toNative(handle). If there were other folks holding a handle to the wrapper, the folks might retrieve null pointers from internal fields and use them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758636</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-05 10:04:16 -0800</bug_when>
    <thetext>I think only NP objects need to null-check toNative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758668</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 10:31:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think only NP objects need to null-check toNative.

Thanks, now I understood things.

As far as I scanned the code, the only place where toNative(npObjectWrapper) is called is weakNPObjectCallback() in V8NPObject.cpp. Just after toNative(npObjectWrapper), we have an ASSERT() that checks if the retrieved npObject is not NULL. So, the world is working safely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758687</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 10:50:06 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758688</commentid>
    <comment_count>9</comment_count>
      <attachid>172363</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-05 10:50:09 -0800</bug_when>
    <thetext>Created attachment 172363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758864</commentid>
    <comment_count>10</comment_count>
      <attachid>172363</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-05 14:02:10 -0800</bug_when>
    <thetext>Comment on attachment 172363
Patch

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

&gt; Source/WebCore/bindings/v8/V8DOMWrapper.h:77
&gt; +        static void resetDOMWrapper(v8::Handle&lt;v8::Object&gt; object, WrapperTypeInfo* type)

resetDOMWrapper -&gt; clearDOMWrapper?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759396</commentid>
    <comment_count>11</comment_count>
      <attachid>172519</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-06 01:37:48 -0800</bug_when>
    <thetext>Created attachment 172519
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759487</commentid>
    <comment_count>12</comment_count>
      <attachid>172519</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 03:34:59 -0800</bug_when>
    <thetext>Comment on attachment 172519
patch for landing

Rejecting attachment 172519 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/14690390</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759489</commentid>
    <comment_count>13</comment_count>
      <attachid>172542</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-06 03:37:37 -0800</bug_when>
    <thetext>Created attachment 172542
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759555</commentid>
    <comment_count>14</comment_count>
      <attachid>172542</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 05:21:09 -0800</bug_when>
    <thetext>Comment on attachment 172542
patch for landing

Clearing flags on attachment: 172542

Committed r133589: &lt;http://trac.webkit.org/changeset/133589&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759556</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 05:21:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172284</attachid>
            <date>2012-11-05 00:38:33 -0800</date>
            <delta_ts>2012-11-05 10:50:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101190-20121105093648.patch</filename>
            <type>text/plain</type>
            <size>1678</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdkZWUwMjI1NGI1YmU3
NWJhNTNiMzczZDZjNDAyOTUxMDYxMDQwOS4uZDMyNjVjYTIyYjczNDc0NjI1NzExN2FkMTE4MjFh
ZWVlZDk1ZDMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbW92ZSBz
ZXRET01XcmFwcGVyKHdyYXBwZXIsIDApIGZyb20gVjhOUE9iamVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTkwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gYnVnIDEwMTA1NCwgd2Ugd2FudCB0
byBhZGQgYW4gQVNTRVJUKCkgdGhhdCBndWFyYW50ZWVzCisgICAgICAgIHRoYXQgd2UgZG9uJ3Qg
cGFzcyAwIHRvIHNldERPTVdyYXBwZXIoKS4gT24gdGhlIG90aGVyIGhhbmQsCisgICAgICAgIFY4
TlBPYmplY3QuY3BwIGlzIHRyeWluZyB0byBwYXNzIDAgdG8gc2V0RE9NV3JhcHBlcigpIGp1c3QK
KyAgICAgICAgYmVmb3JlIGRpc3Bvc2luZyBhIHdyYXBwZXIsIHdoaWNoIGhpdHMgdGhlIEFTU0VS
VCgpLgorICAgICAgICBXZSBzaG91bGQgcmVtb3ZlIGl0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Zm9yZ2V0VjhPYmplY3RGb3JOUE9iamVjdCk6CisKIDIwMTItMTEtMDQgIEhhbHRvbiBI
dW8gIDxoYWx0b24uaHVvQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBVc2UgX0xJQlJBUklF
UyBpbnN0ZWFkIG9mIF9MSUJSQVJZCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOE5QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmpl
Y3QuY3BwCmluZGV4IDRlNTI4M2IxODUyMWVhYzkyZjExYWVhOWI4NDYyOWFkMzE2Yzc5NGUuLjhh
ZGQ4YzNjNmRlMzM1MGQ1NDYxYWFlOWQ1NGU5NzRhYTNhZjg1MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCkBAIC00NTYsNyArNDU2LDYgQEAgdm9pZCBmb3Jn
ZXRWOE9iamVjdEZvck5QT2JqZWN0KE5QT2JqZWN0KiBvYmplY3QpCiAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6Ok9iamVjdD4gd3JhcHBlciA9IHN0YXRpY05QT2JqZWN0TWFwKCkuZ2V0KG9iamVjdCk7
CiAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkgewogICAgICAgICB2ODo6SGFuZGxlU2NvcGUg
c2NvcGU7Ci0gICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCBucE9i
amVjdFR5cGVJbmZvKCksIDApOwogICAgICAgICBzdGF0aWNOUE9iamVjdE1hcCgpLnJlbW92ZShv
YmplY3QsIHdyYXBwZXIpOwogICAgICAgICB3cmFwcGVyLkRpc3Bvc2UoKTsKICAgICAgICAgX05Q
Tl9SZWxlYXNlT2JqZWN0KG9iamVjdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172363</attachid>
            <date>2012-11-05 10:50:09 -0800</date>
            <delta_ts>2012-11-06 01:37:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101190-20121105194823.patch</filename>
            <type>text/plain</type>
            <size>3256</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkYzEyZTgyMjkwYTlj
NTc1YzgwN2U1YzBhOTRkMGJjOWNmMTRmNS4uMmNiZjI5MjE3NjUwYzllODlkMDcxZTExNWJmYWE1
MjVmNTZhYTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEyLTExLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXBsYWNlIHNldERP
TVdyYXBwZXIod3JhcHBlciwgMCkgd2l0aCByZXNldERPTVdyYXBwZXIod3JhcHBlcikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTE5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGd1YXJhbnRlZSB0
aGF0IHdlIG5ldmVyIHN0b3JlcyBOVUxMIHBvaW50ZXJzIHRvIFY4IGludGVybmFsCisgICAgICAg
IGZpZWxkcywgd2Ugd2FudCB0byBpbnNlcnQgQVNTRVJUKClzIHRvIHNldERPTVdyYXBwZXIoKS4K
KyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyBzZXRET01XcmFwcGVyKCkgdGhhdCBpbnRlbnRp
b25hbGx5CisgICAgICAgIHBhc3NlcyBOVUxMIHBvaW50ZXJzIHdpdGggcmVzZXRET01XcmFwcGVy
KCkuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6cmVzZXRET01XcmFwcGVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcmdl
dFY4T2JqZWN0Rm9yTlBPYmplY3QpOgorCisyMDEyLTExLTA1ICBLZW50YXJvIEhhcmEgIDxoYXJh
a2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBBZGQgYSBjb21tZW50IGFib3V0IGEgcmV0dXJu
IHZhbHVlIG9mIElEQktleTo6dG9WOCgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDEyMTIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuaAppbmRleCA3MjFkMjk1YTc3YTliNGU1ODI2YWYwMGY0Y2E0NGYwMWY0ZGVlMzk0
Li45MDk2OTE2NzgyZGE5NmM1NGIxOWM3OTBmNGM2YWIwOGYzZjVjNzYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApAQCAtNjcsNyArNjcsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIG1heWJlRE9NV3JhcHBlcih2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4pOwogI2VuZGlmCiAKLSAgICAgICAgLy8gU2V0cyBjb250ZW50cyBvZiBh
IERPTSB3cmFwcGVyLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRET01XcmFwcGVyKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gb2JqZWN0LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGNwdHIp
CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChvYmplY3QtPkludGVybmFsRmllbGRDb3Vu
dCgpID49IDIpOwpAQCAtNzUsNiArNzQsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgb2JqZWN0LT5TZXRQb2ludGVySW5JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlclR5cGVJ
bmRleCwgdHlwZSk7CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCByZXNldERPTVdy
YXBwZXIodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QsIFdyYXBwZXJUeXBlSW5mbyogdHlw
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG9iamVjdC0+SW50ZXJuYWxGaWVsZENv
dW50KCkgPj0gMik7CisgICAgICAgICAgICBBU1NFUlQodHlwZSk7CisgICAgICAgICAgICBvYmpl
Y3QtPlNldFBvaW50ZXJJbkludGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4LCB0eXBl
KTsKKyAgICAgICAgICAgIG9iamVjdC0+U2V0UG9pbnRlckluSW50ZXJuYWxGaWVsZCh2OERPTVdy
YXBwZXJPYmplY3RJbmRleCwgMCk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBsb29rdXBET01XcmFwcGVyKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IGZ1bmN0aW9uVGVtcGxhdGUsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0
KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gb2JqZWN0LklzRW1wdHkoKSA/IG9iamVj
dCA6IG9iamVjdC0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFpbihmdW5jdGlvblRlbXBsYXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAKaW5kZXggMTQ3Mzkw
MzlkNjAzN2VjOTM2YTg0OGE0ZDc2MTM0MWM5MDZkNWFiMi4uYThkYTI2MDMzMDY5MTVmOTU1MGJk
NGVmNTUyMDg1ZWVkYmY1NWFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9i
amVjdC5jcHAKQEAgLTQ1OCw3ICs0NTgsNyBAQCB2b2lkIGZvcmdldFY4T2JqZWN0Rm9yTlBPYmpl
Y3QoTlBPYmplY3QqIG9iamVjdCkKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gc3RhdGljTlBPYmplY3RNYXAoKS5nZXQob2JqZWN0KTsKICAgICBpZiAoIXdyYXBwZXIu
SXNFbXB0eSgpKSB7CiAgICAgICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKLSAgICAgICAgVjhE
T01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsIG5wT2JqZWN0VHlwZUluZm8oKSwgMCk7
CisgICAgICAgIFY4RE9NV3JhcHBlcjo6cmVzZXRET01XcmFwcGVyKHdyYXBwZXIsIG5wT2JqZWN0
VHlwZUluZm8oKSk7CiAgICAgICAgIHN0YXRpY05QT2JqZWN0TWFwKCkucmVtb3ZlKG9iamVjdCwg
d3JhcHBlcik7CiAgICAgICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAgICAgICB3cmFwcGVyLkNs
ZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172519</attachid>
            <date>2012-11-06 01:37:48 -0800</date>
            <delta_ts>2012-11-06 03:37:33 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-101190-20121106103601.patch</filename>
            <type>text/plain</type>
            <size>3256</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkYzEyZTgyMjkwYTlj
NTc1YzgwN2U1YzBhOTRkMGJjOWNmMTRmNS4uZGJjNjQ5YTEzY2VkYTZjNjAzY2MyYzdiNDBmM2E2
YjFmYTA1M2NhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEyLTExLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXBsYWNlIHNldERP
TVdyYXBwZXIod3JhcHBlciwgMCkgd2l0aCByZXNldERPTVdyYXBwZXIod3JhcHBlcikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTE5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGd1YXJhbnRlZSB0
aGF0IHdlIG5ldmVyIHN0b3JlcyBOVUxMIHBvaW50ZXJzIHRvIFY4IGludGVybmFsCisgICAgICAg
IGZpZWxkcywgd2Ugd2FudCB0byBpbnNlcnQgQVNTRVJUKClzIHRvIHNldERPTVdyYXBwZXIoKS4K
KyAgICAgICAgVGhpcyBwYXRjaCByZXBsYWNlcyBzZXRET01XcmFwcGVyKCkgdGhhdCBpbnRlbnRp
b25hbGx5CisgICAgICAgIHBhc3NlcyBOVUxMIHBvaW50ZXJzIHdpdGggY2xlYXJET01XcmFwcGVy
KCkuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6Y2xlYXJET01XcmFwcGVyKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcmdl
dFY4T2JqZWN0Rm9yTlBPYmplY3QpOgorCisyMDEyLTExLTA1ICBLZW50YXJvIEhhcmEgIDxoYXJh
a2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBBZGQgYSBjb21tZW50IGFib3V0IGEgcmV0dXJu
IHZhbHVlIG9mIElEQktleTo6dG9WOCgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDEyMTIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuaAppbmRleCA3MjFkMjk1YTc3YTliNGU1ODI2YWYwMGY0Y2E0NGYwMWY0ZGVlMzk0
Li4zNGQ4ODE5NDY3NWI5YzE0MTczMjFjYjZlYTE1ODczMjY5YjgyNmI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaApAQCAtNjcsNyArNjcsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIG1heWJlRE9NV3JhcHBlcih2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4pOwogI2VuZGlmCiAKLSAgICAgICAgLy8gU2V0cyBjb250ZW50cyBvZiBh
IERPTSB3cmFwcGVyLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRET01XcmFwcGVyKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gb2JqZWN0LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGNwdHIp
CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChvYmplY3QtPkludGVybmFsRmllbGRDb3Vu
dCgpID49IDIpOwpAQCAtNzUsNiArNzQsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgb2JqZWN0LT5TZXRQb2ludGVySW5JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlclR5cGVJ
bmRleCwgdHlwZSk7CiAgICAgICAgIH0KIAorICAgICAgICBzdGF0aWMgdm9pZCBjbGVhckRPTVdy
YXBwZXIodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QsIFdyYXBwZXJUeXBlSW5mbyogdHlw
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG9iamVjdC0+SW50ZXJuYWxGaWVsZENv
dW50KCkgPj0gMik7CisgICAgICAgICAgICBBU1NFUlQodHlwZSk7CisgICAgICAgICAgICBvYmpl
Y3QtPlNldFBvaW50ZXJJbkludGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4LCB0eXBl
KTsKKyAgICAgICAgICAgIG9iamVjdC0+U2V0UG9pbnRlckluSW50ZXJuYWxGaWVsZCh2OERPTVdy
YXBwZXJPYmplY3RJbmRleCwgMCk7CisgICAgICAgIH0KKwogICAgICAgICBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBsb29rdXBET01XcmFwcGVyKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IGZ1bmN0aW9uVGVtcGxhdGUsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0
KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gb2JqZWN0LklzRW1wdHkoKSA/IG9iamVj
dCA6IG9iamVjdC0+RmluZEluc3RhbmNlSW5Qcm90b3R5cGVDaGFpbihmdW5jdGlvblRlbXBsYXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAKaW5kZXggMTQ3Mzkw
MzlkNjAzN2VjOTM2YTg0OGE0ZDc2MTM0MWM5MDZkNWFiMi4uNjc2YTY3MmQ5MDNlMGQ4NTNjOGU4
MzFkYzIxNTBhNTNjMmFiMTc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9i
amVjdC5jcHAKQEAgLTQ1OCw3ICs0NTgsNyBAQCB2b2lkIGZvcmdldFY4T2JqZWN0Rm9yTlBPYmpl
Y3QoTlBPYmplY3QqIG9iamVjdCkKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gc3RhdGljTlBPYmplY3RNYXAoKS5nZXQob2JqZWN0KTsKICAgICBpZiAoIXdyYXBwZXIu
SXNFbXB0eSgpKSB7CiAgICAgICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKLSAgICAgICAgVjhE
T01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIsIG5wT2JqZWN0VHlwZUluZm8oKSwgMCk7
CisgICAgICAgIFY4RE9NV3JhcHBlcjo6Y2xlYXJET01XcmFwcGVyKHdyYXBwZXIsIG5wT2JqZWN0
VHlwZUluZm8oKSk7CiAgICAgICAgIHN0YXRpY05QT2JqZWN0TWFwKCkucmVtb3ZlKG9iamVjdCwg
d3JhcHBlcik7CiAgICAgICAgIHdyYXBwZXIuRGlzcG9zZSgpOwogICAgICAgICB3cmFwcGVyLkNs
ZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172542</attachid>
            <date>2012-11-06 03:37:37 -0800</date>
            <delta_ts>2012-11-06 05:21:09 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-101190-20121106123550.patch</filename>
            <type>text/plain</type>
            <size>3252</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFkYzEyZTgyMjkwYTlj
NTc1YzgwN2U1YzBhOTRkMGJjOWNmMTRmNS4uOTAwMjU0MGNhMGU3YWE4ZmE0MzM5M2I3N2U0NTk3
MGIyOTVhZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEyLTExLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXBsYWNlIHNldERP
TVdyYXBwZXIod3JhcHBlciwgMCkgd2l0aCByZXNldERPTVdyYXBwZXIod3JhcHBlcikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTE5MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVG8gZ3VhcmFudGVlIHRoYXQg
d2UgbmV2ZXIgc3RvcmVzIE5VTEwgcG9pbnRlcnMgdG8gVjggaW50ZXJuYWwKKyAgICAgICAgZmll
bGRzLCB3ZSB3YW50IHRvIGluc2VydCBBU1NFUlQoKXMgdG8gc2V0RE9NV3JhcHBlcigpLgorICAg
ICAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIHNldERPTVdyYXBwZXIoKSB0aGF0IGludGVudGlvbmFs
bHkKKyAgICAgICAgcGFzc2VzIE5VTEwgcG9pbnRlcnMgd2l0aCBjbGVhckRPTVdyYXBwZXIoKS4K
KworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICog
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmg6CisgICAgICAgIChWOERPTVdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpjbGVhckRPTVdyYXBwZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9yZ2V0VjhP
YmplY3RGb3JOUE9iamVjdCk6CisKKzIwMTItMTEtMDUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Y2hyb21pdW0ub3JnPgorCiAgICAgICAgIEFkZCBhIGNvbW1lbnQgYWJvdXQgYSByZXR1cm4gdmFs
dWUgb2YgSURCS2V5Ojp0b1Y4KCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTIxMgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3Jh
cHBlci5oCmluZGV4IDcyMWQyOTVhNzdhOWI0ZTU4MjZhZjAwZjRjYTQ0ZjAxZjRkZWUzOTQuLjM0
ZDg4MTk0Njc1YjljMTQxNzMyMWNiNmVhMTU4NzMyNjliODI2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCkBAIC02Nyw3ICs2Nyw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGJvb2wgbWF5YmVET01XcmFwcGVyKHY4OjpIYW5kbGU8
djg6OlZhbHVlPik7CiAjZW5kaWYKIAotICAgICAgICAvLyBTZXRzIGNvbnRlbnRzIG9mIGEgRE9N
IHdyYXBwZXIuCiAgICAgICAgIHN0YXRpYyB2b2lkIHNldERPTVdyYXBwZXIodjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBvYmplY3QsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdm9pZCogY3B0cikKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG9iamVjdC0+SW50ZXJuYWxGaWVsZENvdW50KCkg
Pj0gMik7CkBAIC03NSw2ICs3NCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBvYmplY3QtPlNldFBvaW50ZXJJbkludGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4
LCB0eXBlKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyB2b2lkIGNsZWFyRE9NV3JhcHBl
cih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCwgV3JhcHBlclR5cGVJbmZvKiB0eXBlKQor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQob2JqZWN0LT5JbnRlcm5hbEZpZWxkQ291bnQo
KSA+PSAyKTsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlKTsKKyAgICAgICAgICAgIG9iamVjdC0+
U2V0UG9pbnRlckluSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJUeXBlSW5kZXgsIHR5cGUpOwor
ICAgICAgICAgICAgb2JqZWN0LT5TZXRQb2ludGVySW5JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBl
ck9iamVjdEluZGV4LCAwKTsKKyAgICAgICAgfQorCiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IGxvb2t1cERPTVdyYXBwZXIodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gZnVuY3Rpb25UZW1wbGF0ZSwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBvYmplY3QuSXNFbXB0eSgpID8gb2JqZWN0IDog
b2JqZWN0LT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKGZ1bmN0aW9uVGVtcGxhdGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcAppbmRleCAxNDczOTAzOWQ2
MDM3ZWM5MzZhODQ4YTRkNzYxMzQxYzkwNmQ1YWIyLi42NzZhNjcyZDkwM2UwZDg1M2M4ZTgzMWRj
MjE1MGE1M2MyYWIxNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OE5QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0
LmNwcApAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgZm9yZ2V0VjhPYmplY3RGb3JOUE9iamVjdChO
UE9iamVjdCogb2JqZWN0KQogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIg
PSBzdGF0aWNOUE9iamVjdE1hcCgpLmdldChvYmplY3QpOwogICAgIGlmICghd3JhcHBlci5Jc0Vt
cHR5KCkpIHsKICAgICAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwotICAgICAgICBWOERPTVdy
YXBwZXI6OnNldERPTVdyYXBwZXIod3JhcHBlciwgbnBPYmplY3RUeXBlSW5mbygpLCAwKTsKKyAg
ICAgICAgVjhET01XcmFwcGVyOjpjbGVhckRPTVdyYXBwZXIod3JhcHBlciwgbnBPYmplY3RUeXBl
SW5mbygpKTsKICAgICAgICAgc3RhdGljTlBPYmplY3RNYXAoKS5yZW1vdmUob2JqZWN0LCB3cmFw
cGVyKTsKICAgICAgICAgd3JhcHBlci5EaXNwb3NlKCk7CiAgICAgICAgIHdyYXBwZXIuQ2xlYXIo
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>