<?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>49350</bug_id>
          
          <creation_ts>2010-11-10 16:14:53 -0800</creation_ts>
          <short_desc>bufferData/bufferSubData should not crash with null data input</short_desc>
          <delta_ts>2010-11-11 16:02:45 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>enne</cc>
    
    <cc>gman</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307608</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-10 16:14:53 -0800</bug_when>
    <thetext>Currently it will crash in command buffer port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307628</commentid>
    <comment_count>1</comment_count>
      <attachid>73557</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-10 16:46:45 -0800</bug_when>
    <thetext>Created attachment 73557
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307629</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-10 16:47:11 -0800</bug_when>
    <thetext>Test synced with khronos</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308113</commentid>
    <comment_count>3</comment_count>
      <attachid>73557</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-11 13:46:35 -0800</bug_when>
    <thetext>Comment on attachment 73557
patch

Unfortunately the spec is badly written in this area, in particular for bufferData. I don&apos;t think that making the call a no-op is the right thing to do. I&apos;ve just committed an update to the spec requiring that INVALID_VALUE is raised if bufferData is called with a null ArrayBuffer or ArrayBufferView. Could you please update the code and test? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308144</commentid>
    <comment_count>4</comment_count>
      <attachid>73660</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-11 14:18:06 -0800</bug_when>
    <thetext>Created attachment 73660
revised patch: responding to spec change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308147</commentid>
    <comment_count>5</comment_count>
      <attachid>73660</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-11 14:21:06 -0800</bug_when>
    <thetext>Comment on attachment 73660
revised patch: responding to spec change

You added four different places that return INVALID_VALUE. But you only have two test cases that expect INVALID_VALUE. That means that at least two of the code paths are untested. Could you fill out the tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308157</commentid>
    <comment_count>6</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-11 14:29:38 -0800</bug_when>
    <thetext>I don&apos;t think we can, because when we pass in null, there is no way to tell it is ArrayBuffer null or ArrayBufferView null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308168</commentid>
    <comment_count>7</comment_count>
      <attachid>73660</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-11 14:40:28 -0800</bug_when>
    <thetext>Comment on attachment 73660
revised patch: responding to spec change

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

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:475
&gt; +    if (!data) {
&gt; +        m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
&gt; +        return;
&gt; +    }

The bufferSubData variants shouldn&apos;t generate INVALID_VALUE, only the bufferData variants. The bufferSubData variants can safely return early.

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:498
&gt; +    if (!data) {
&gt; +        m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
&gt; +        return;
&gt; +    }

See above.

&gt; LayoutTests/fast/canvas/webgl/buffer-data-array-buffer.html:26
&gt; +glErrorShouldBe(gl, gl.INVALID_OPERATION);

Unfortunately per discussion on the public_webgl list I do not think we can mandate this behavior in the Khronos conformance suite. The overloading behavior in Web IDL is ambiguous in this case (http://dev.w3.org/2006/webapi/WebIDL/Overview.html#call) and Firefox does something different than WebKit. You could require that the GL error is either INVALID_OPERATION or NO_ERROR (and, implicitly, not a crash).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308217</commentid>
    <comment_count>8</comment_count>
      <attachid>73673</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-11 15:36:04 -0800</bug_when>
    <thetext>Created attachment 73673
revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308230</commentid>
    <comment_count>9</comment_count>
      <attachid>73673</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-11 15:50:05 -0800</bug_when>
    <thetext>Comment on attachment 73673
revised patch

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

Looks fine; could you please add one comment to the test while landing?

&gt; LayoutTests/fast/canvas/webgl/buffer-data-array-buffer.html:32
&gt; +gl.bufferData(gl.ARRAY_BUFFER, null, gl.STATIC_DRAW);
&gt; +gl.getError();

Could you add a comment like &quot;this should not crash, but the selection of the overload is ambiguous per Web IDL&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308236</commentid>
    <comment_count>10</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-11 15:56:44 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 73673 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73673&amp;action=review
&gt; 
&gt; Looks fine; could you please add one comment to the test while landing?
&gt; 
&gt; &gt; LayoutTests/fast/canvas/webgl/buffer-data-array-buffer.html:32
&gt; &gt; +gl.bufferData(gl.ARRAY_BUFFER, null, gl.STATIC_DRAW);
&gt; &gt; +gl.getError();
&gt; 
&gt; Could you add a comment like &quot;this should not crash, but the selection of the overload is ambiguous per Web IDL&quot;?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308240</commentid>
    <comment_count>11</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-11 16:02:45 -0800</bug_when>
    <thetext>Committed r71861: &lt;http://trac.webkit.org/changeset/71861&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73557</attachid>
            <date>2010-11-10 16:46:45 -0800</date>
            <delta_ts>2010-11-11 14:18:06 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bufferdata.patch</filename>
            <type>text/plain</type>
            <size>5312</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTc3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWZmZXJE
YXRhL2J1ZmZlclN1YkRhdGEgc2hvdWxkIG5vdCBjcmFzaCB3aXRoIG51bGwgZGF0YSBpbnB1dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkzNTAKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6IHJldHVybiBl
YXJseSBpZiBpbnB1dCBkYXRhIGlzIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpidWZmZXJTdWJEYXRhKToKKwogMjAxMC0xMS0xMCAgTWF0dGhldyBEZWxhbmV5
ICA8bWRlbGFuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAkocmV2aXNpb24gNzE3NTQpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw2ICs0MjMsOCBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6YnVmZmVyRGF0YSh1CiAgICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9
IHZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnModGFyZ2V0LCB1c2FnZSk7CiAgICAgaWYgKCFi
dWZmZXIpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybjsK
ICAgICBpZiAoIWlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91bmRzQWNjZXNzZXMoKSkgewogICAg
ICAgICBpZiAoIWJ1ZmZlci0+YXNzb2NpYXRlQnVmZmVyRGF0YShkYXRhKSkgewogICAgICAgICAg
ICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9WQUxVRSk7CkBAIC00NDIsNiArNDQ0LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmJ1ZmZlckRhdGEodQogICAgIFdlYkdMQnVmZmVyKiBidWZmZXIgPSB2YWxpZGF0ZUJ1ZmZlckRh
dGFQYXJhbWV0ZXJzKHRhcmdldCwgdXNhZ2UpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICBy
ZXR1cm47CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm47CiAgICAgaWYgKCFpc0Vycm9y
R2VuZXJhdGVkT25PdXRPZkJvdW5kc0FjY2Vzc2VzKCkpIHsKICAgICAgICAgaWYgKCFidWZmZXIt
PmFzc29jaWF0ZUJ1ZmZlckRhdGEoZGF0YSkpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOwpAQCAtNDYx
LDYgKzQ2NSw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpidWZmZXJTdWJEYXQKICAg
ICBXZWJHTEJ1ZmZlciogYnVmZmVyID0gdmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyh0YXJn
ZXQsIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVyk7CiAgICAgaWYgKCFidWZmZXIpCiAg
ICAgICAgIHJldHVybjsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybjsKICAgICBpZiAo
IWlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91bmRzQWNjZXNzZXMoKSkgewogICAgICAgICBpZiAo
IWJ1ZmZlci0+YXNzb2NpYXRlQnVmZmVyU3ViRGF0YShvZmZzZXQsIGRhdGEpKSB7CiAgICAgICAg
ICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX1ZBTFVFKTsKQEAgLTQ4MCw2ICs0ODYsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6YnVmZmVyU3ViRGF0CiAgICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9IHZhbGlkYXRlQnVmZmVy
RGF0YVBhcmFtZXRlcnModGFyZ2V0LCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpOwog
ICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFkYXRhKQorICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCFpc0Vycm9yR2VuZXJhdGVkT25PdXRPZkJvdW5kc0FjY2Vzc2Vz
KCkpIHsKICAgICAgICAgaWYgKCFidWZmZXItPmFzc29jaWF0ZUJ1ZmZlclN1YkRhdGEob2Zmc2V0
LCBkYXRhKSkgewogICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTc3OCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDEwLTExLTEwICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYnVmZmVyRGF0YS9idWZmZXJTdWJE
YXRhIHNob3VsZCBub3QgY3Jhc2ggd2l0aCBudWxsIGRhdGEgaW5wdXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MzUwCisKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9idWZmZXItZGF0YS1hcnJheS1idWZmZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci5odG1sOiB0
ZXN0IHRoZSBudWxsIGRhdGEgaW5wdXQgY2FzZXMuCisKIDIwMTAtMTEtMTAgIE1paGFpIFBhcnBh
cml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1
bSByZWJhc2VsaW5lLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVmZmVy
LWRhdGEtYXJyYXktYnVmZmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9idWZmZXItZGF0YS1hcnJheS1idWZmZXItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA3MTc1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1ZmZl
ci1kYXRhLWFycmF5LWJ1ZmZlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMTAg
KzYsMTIgQEAgUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0LgogUEFTUyBn
bCBpcyBub24tbnVsbC4KIFBBU1MgYXJyYXkgaXMgbm9uLW51bGwuCiBQQVNTIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURf
T1BFUkFUSU9OCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKLVBBU1MgZ2wuZ2V0
RXJyb3IoKSBpcyBnbC5OT19FUlJPUgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiAK
K1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1
ZmZlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1
ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci5odG1sCShyZXZpc2lvbiA3MTc1NCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMywxOCArMjMsMjQgQEAgdmFyIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigp
Owogc2hvdWxkQmVOb25OdWxsKGJ1Zik7CiAKIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCBhcnJheSwgZ2wuU1RBVElDX0RSQVcpOwotc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wu
SU5WQUxJRF9PUEVSQVRJT04iKTsgCitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BF
UkFUSU9OKTsKIAogZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1Zik7Ci1zaG91bGRC
ZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CisKK2dsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBudWxsLCBnbC5T
VEFUSUNfRFJBVyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAogZ2wuYnVm
ZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGFycmF5LCBnbC5TVEFUSUNfRFJBVyk7Ci1zaG91bGRC
ZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAKIGFycmF5ID0gbmV3IEFycmF5QnVmZmVyKDY0KTsKIAogZ2wuYnVmZmVy
U3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDEwLCBhcnJheSk7Ci1zaG91bGRCZSgiZ2wuZ2V0RXJy
b3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7
CisKK2dsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJSQVlfQlVGRkVSLCAxMCwgbnVsbCk7CitnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IDwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="64008"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="64009"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73660</attachid>
            <date>2010-11-11 14:18:06 -0800</date>
            <delta_ts>2010-11-11 15:36:04 -0800</delta_ts>
            <desc>revised patch: responding to spec change</desc>
            <filename>bufferdata.patch</filename>
            <type>text/plain</type>
            <size>5664</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTc3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWZmZXJE
YXRhL2J1ZmZlclN1YkRhdGEgc2hvdWxkIG5vdCBjcmFzaCB3aXRoIG51bGwgZGF0YSBpbnB1dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkzNTAKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6IHJldHVybiBl
YXJseSBpZiBpbnB1dCBkYXRhIGlzIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpidWZmZXJTdWJEYXRhKToKKwogMjAxMC0xMS0xMCAgTWF0dGhldyBEZWxhbmV5
ICA8bWRlbGFuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAkocmV2aXNpb24gNzE3NTQpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw2ICs0MjMsMTAgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEodQogICAgIFdlYkdMQnVmZmVyKiBidWZmZXIg
PSB2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKHRhcmdldCwgdXNhZ2UpOwogICAgIGlmICgh
YnVmZmVyKQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFkYXRhKSB7CisgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUp
OworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmICghaXNFcnJvckdlbmVyYXRlZE9uT3V0
T2ZCb3VuZHNBY2Nlc3NlcygpKSB7CiAgICAgICAgIGlmICghYnVmZmVyLT5hc3NvY2lhdGVCdWZm
ZXJEYXRhKGRhdGEpKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKQEAgLTQ0Miw2ICs0NDYsMTAgQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEodQogICAgIFdlYkdMQnVmZmVy
KiBidWZmZXIgPSB2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKHRhcmdldCwgdXNhZ2UpOwog
ICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFkYXRhKSB7CisgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmICghaXNFcnJvckdlbmVy
YXRlZE9uT3V0T2ZCb3VuZHNBY2Nlc3NlcygpKSB7CiAgICAgICAgIGlmICghYnVmZmVyLT5hc3Nv
Y2lhdGVCdWZmZXJEYXRhKGRhdGEpKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKQEAgLTQ2MSw2ICs0
NjksMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlclN1YkRhdAogICAgIFdl
YkdMQnVmZmVyKiBidWZmZXIgPSB2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKHRhcmdldCwg
R3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOworICAgIGlmICghZGF0YSkgeworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KICAgICBpZiAoIWlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91bmRzQWNjZXNz
ZXMoKSkgewogICAgICAgICBpZiAoIWJ1ZmZlci0+YXNzb2NpYXRlQnVmZmVyU3ViRGF0YShvZmZz
ZXQsIGRhdGEpKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKQEAgLTQ4MCw2ICs0OTIsMTAgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlclN1YkRhdAogICAgIFdlYkdMQnVmZmVyKiBi
dWZmZXIgPSB2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKHRhcmdldCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlNUQVRJQ19EUkFXKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwor
ICAgIGlmICghZGF0YSkgeworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
ICAgICBpZiAoIWlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91bmRzQWNjZXNzZXMoKSkgewogICAg
ICAgICBpZiAoIWJ1ZmZlci0+YXNzb2NpYXRlQnVmZmVyU3ViRGF0YShvZmZzZXQsIGRhdGEpKSB7
CiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX1ZBTFVFKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxNzc4KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTEt
MTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWZmZXJEYXRhL2J1ZmZlclN1YkRhdGEgc2hvdWxk
IG5vdCBjcmFzaCB3aXRoIG51bGwgZGF0YSBpbnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkzNTAKKworICAgICAgICAqIGZhc3QvY2FudmFzL3dl
YmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvYnVmZmVyLWRhdGEtYXJyYXktYnVmZmVyLmh0bWw6IHRlc3QgdGhlIG51
bGwgZGF0YSBpbnB1dCBjYXNlcy4KKwogMjAxMC0xMS0xMCAgTWloYWkgUGFycGFyaXRhICA8bWlo
YWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIHJlYmFzZWxp
bmUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWZmZXItZGF0YS1hcnJh
eS1idWZmZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDcxNzU0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVmZmVyLWRhdGEtYXJy
YXktYnVmZmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiwxMCArNiwxMiBAQCBS
ZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQuCiBQQVNTIGdsIGlzIG5vbi1u
dWxsLgogUEFTUyBhcnJheSBpcyBub24tbnVsbC4KIFBBU1MgW29iamVjdCBXZWJHTEJ1ZmZlcl0g
aXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9PUEVSQVRJT04K
LVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgotUEFTUyBnbC5nZXRFcnJvcigpIGlz
IGdsLk5PX0VSUk9SCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IAorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZB
TFVFIDogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1
ZmZlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1
ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci5odG1sCShyZXZpc2lvbiA3MTc1NCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1ZmZlci1kYXRhLWFycmF5LWJ1ZmZlci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMywxOCArMjMsMjQgQEAgdmFyIGJ1ZiA9IGdsLmNyZWF0ZUJ1ZmZlcigp
Owogc2hvdWxkQmVOb25OdWxsKGJ1Zik7CiAKIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCBhcnJheSwgZ2wuU1RBVElDX0RSQVcpOwotc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wu
SU5WQUxJRF9PUEVSQVRJT04iKTsgCitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BF
UkFUSU9OKTsKIAogZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGJ1Zik7Ci1zaG91bGRC
ZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CisKK2dsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBudWxsLCBnbC5T
VEFUSUNfRFJBVyk7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUpOwogCiBn
bC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgYXJyYXksIGdsLlNUQVRJQ19EUkFXKTsKLXNo
b3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CitnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKIAogYXJyYXkgPSBuZXcgQXJyYXlCdWZmZXIoNjQpOwogCiBnbC5i
dWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTAsIGFycmF5KTsKLXNob3VsZEJlKCJnbC5n
ZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKKworZ2wuYnVmZmVyU3ViRGF0YShnbC5BUlJBWV9CVUZGRVIsIDEwLCBudWxsKTsKK2ds
RXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSk7CiAKIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CiA8L3NjcmlwdD4K
</data>
<flag name="review"
          id="64132"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="64133"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73673</attachid>
            <date>2010-11-11 15:36:04 -0800</date>
            <delta_ts>2010-11-11 15:50:05 -0800</delta_ts>
            <desc>revised patch</desc>
            <filename>bufferdata.patch</filename>
            <type>text/plain</type>
            <size>5412</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTc3OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMTAgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBidWZmZXJE
YXRhL2J1ZmZlclN1YkRhdGEgc2hvdWxkIG5vdCBjcmFzaCB3aXRoIG51bGwgZGF0YSBpbnB1dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkzNTAKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6IHJldHVybiBl
YXJseSBpZiBpbnB1dCBkYXRhIGlzIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpidWZmZXJTdWJEYXRhKToKKwogMjAxMC0xMS0xMCAgTWF0dGhldyBEZWxhbmV5
ICA8bWRlbGFuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAkocmV2aXNpb24gNzE3NTQpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw2ICs0MjMsMTAgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEodQogICAgIFdlYkdMQnVmZmVyKiBidWZmZXIg
PSB2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKHRhcmdldCwgdXNhZ2UpOwogICAgIGlmICgh
YnVmZmVyKQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFkYXRhKSB7CisgICAgICAgIG1fY29u
dGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUp
OworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmICghaXNFcnJvckdlbmVyYXRlZE9uT3V0
T2ZCb3VuZHNBY2Nlc3NlcygpKSB7CiAgICAgICAgIGlmICghYnVmZmVyLT5hc3NvY2lhdGVCdWZm
ZXJEYXRhKGRhdGEpKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKQEAgLTQ0Miw2ICs0NDYsMTAgQEAg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1ZmZlckRhdGEodQogICAgIFdlYkdMQnVmZmVy
KiBidWZmZXIgPSB2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKHRhcmdldCwgdXNhZ2UpOwog
ICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFkYXRhKSB7CisgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGlmICghaXNFcnJvckdlbmVy
YXRlZE9uT3V0T2ZCb3VuZHNBY2Nlc3NlcygpKSB7CiAgICAgICAgIGlmICghYnVmZmVyLT5hc3Nv
Y2lhdGVCdWZmZXJEYXRhKGRhdGEpKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKQEAgLTQ2MSw2ICs0
NjksOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6YnVmZmVyU3ViRGF0CiAgICAgV2Vi
R0xCdWZmZXIqIGJ1ZmZlciA9IHZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnModGFyZ2V0LCBH
cmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpOwogICAgIGlmICghYnVmZmVyKQogICAgICAg
ICByZXR1cm47CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm47CiAgICAgaWYgKCFpc0Vy
cm9yR2VuZXJhdGVkT25PdXRPZkJvdW5kc0FjY2Vzc2VzKCkpIHsKICAgICAgICAgaWYgKCFidWZm
ZXItPmFzc29jaWF0ZUJ1ZmZlclN1YkRhdGEob2Zmc2V0LCBkYXRhKSkgewogICAgICAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9W
QUxVRSk7CkBAIC00ODAsNiArNDkwLDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJ1
ZmZlclN1YkRhdAogICAgIFdlYkdMQnVmZmVyKiBidWZmZXIgPSB2YWxpZGF0ZUJ1ZmZlckRhdGFQ
YXJhbWV0ZXJzKHRhcmdldCwgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXKTsKICAgICBp
ZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0
dXJuOwogICAgIGlmICghaXNFcnJvckdlbmVyYXRlZE9uT3V0T2ZCb3VuZHNBY2Nlc3NlcygpKSB7
CiAgICAgICAgIGlmICghYnVmZmVyLT5hc3NvY2lhdGVCdWZmZXJTdWJEYXRhKG9mZnNldCwgZGF0
YSkpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzE3NzgpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAx
MC0xMS0xMCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGJ1ZmZlckRhdGEvYnVmZmVyU3ViRGF0YSBz
aG91bGQgbm90IGNyYXNoIHdpdGggbnVsbCBkYXRhIGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTM1MAorCisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvYnVmZmVyLWRhdGEtYXJyYXktYnVmZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy93ZWJnbC9idWZmZXItZGF0YS1hcnJheS1idWZmZXIuaHRtbDogdGVzdCB0
aGUgbnVsbCBkYXRhIGlucHV0IGNhc2VzLgorCiAyMDEwLTExLTEwICBNaWhhaSBQYXJwYXJpdGEg
IDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gcmVi
YXNlbGluZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1ZmZlci1kYXRh
LWFycmF5LWJ1ZmZlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvYnVmZmVyLWRhdGEtYXJyYXktYnVmZmVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNzE3NTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWZmZXItZGF0
YS1hcnJheS1idWZmZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDEwICs2LDEx
IEBAIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC4KIFBBU1MgZ2wgaXMg
bm9uLW51bGwuCiBQQVNTIGFycmF5IGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX09QRVJB
VElPTgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuTk9fRVJST1IKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogCitQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVmZmVyLWRhdGEtYXJy
YXktYnVmZmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYnVmZmVyLWRhdGEtYXJyYXktYnVmZmVyLmh0bWwJKHJldmlzaW9uIDcxNzU0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVmZmVyLWRhdGEtYXJyYXktYnVmZmVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDE4ICsyMywyNCBAQCB2YXIgYnVmID0gZ2wuY3JlYXRlQnVm
ZmVyKCk7CiBzaG91bGRCZU5vbk51bGwoYnVmKTsKIAogZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9C
VUZGRVIsIGFycmF5LCBnbC5TVEFUSUNfRFJBVyk7Ci1zaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIs
ICJnbC5JTlZBTElEX09QRVJBVElPTiIpOyAKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJ
RF9PUEVSQVRJT04pOwogCiBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmKTsKLXNo
b3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CitnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKKworZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIG51bGws
IGdsLlNUQVRJQ19EUkFXKTsKK2dsLmdldEVycm9yKCk7CiAKIGdsLmJ1ZmZlckRhdGEoZ2wuQVJS
QVlfQlVGRkVSLCBhcnJheSwgZ2wuU1RBVElDX0RSQVcpOwotc2hvdWxkQmUoImdsLmdldEVycm9y
KCkiLCAiZ2wuTk9fRVJST1IiKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwog
CiBhcnJheSA9IG5ldyBBcnJheUJ1ZmZlcig2NCk7CiAKIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJS
QVlfQlVGRkVSLCAxMCwgYXJyYXkpOwotc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9f
RVJST1IiKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworCitnbC5idWZmZXJT
dWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMTAsIG51bGwpOworZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
</data>
<flag name="review"
          id="64152"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="64153"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>