<?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>38962</bug_id>
          
          <creation_ts>2010-05-11 18:50:08 -0700</creation_ts>
          <short_desc>Must not crash if vertex attribute array is enabled but uninitialized</short_desc>
          <delta_ts>2010-06-10 09:49:34 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Kenneth Russell">kbr</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>224322</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-05-11 18:50:08 -0700</bug_when>
    <thetext>Currently most of the ports of WebGL will crash in the following situation:
 - enableVertexAttribArray(index) is called, but a pointer is not set up via bindBuffer / vertexAttribPointer
 - drawArrays or drawElements is called, even if the current program does not reference this particular attribute array.

The problem is that the vertex attribute is initially set up for client-side arrays. The GL apparently does not have enough information to know that the attribute array is unreferenced by the current program and attempts to copy its data to the graphics card, leading to a NULL pointer dereference and a crash. This does not appear to happen when a vertex buffer object is bound to the vertex attribute.

To fix this, we hypothesize that it is sufficient to bind a zero-length buffer object to all of the vertex attribute arrays at context initialization time. This way their storage is always specified to live on the graphics card. It is not possible with the WebGL API to re-initialize a vertex attribute array to use client-side arrays.

Note that the index validation already in place prevents attempts to walk off the end of vertex buffer objects actually referenced by the program.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230540</commentid>
    <comment_count>1</comment_count>
      <attachid>57057</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-05-25 17:48:50 -0700</bug_when>
    <thetext>Created attachment 57057
patch

For the newly added test, Chrome with CommandBuffer port will crash without this patch, but will not crash with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230957</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-05-26 15:09:27 -0700</bug_when>
    <thetext>Patch becomes invalid due to the new WebGL spec updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236400</commentid>
    <comment_count>3</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-06-10 09:49:34 -0700</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=40315</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57057</attachid>
            <date>2010-05-25 17:48:50 -0700</date>
            <delta_ts>2010-05-26 15:08:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>attrib.patch</filename>
            <type>text/plain</type>
            <size>14291</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDIwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUtMjUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNdXN0IG5v
dCBjcmFzaCBpZiB2ZXJ0ZXggYXR0cmlidXRlIGFycmF5IGlzIGVuYWJsZWQgYnV0IHVuaW5pdGlh
bGl6ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
OTYyCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvZ2wtZW5hYmxlLXZlcnRleC1h
dHRyaWIuaHRtbAorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwOiBSZW1v
dmUgY29uc3RydWN0b3Igd2l0aCBhbiBleGlzdGluZyBuYW1lLgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dCk6IENhbGwgaW5pdGlhbGl6ZVZlcnRleEF0dHJpYkJp
bmRpbmdzKCkuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFZl
cnRleEF0dHJpYik6IERlYWwgd2l0aCB1bi1pbml0aWFsaXplZCB2ZXJ0ZXggYXR0cmlicy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmVydGV4QXR0cmliUG9pbnRl
cik6IFNldCB2ZXJ0ZXhBdHRyaWIgaW5pdGlhbGl6ZWQgc3RhdGUuIAorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpmaW5kQnVmZmVyKTogRmluZCBhIFdlYkdMQnVmZmVy
IHVzaW5nIGl0cyBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
Ojppbml0aWFsaXplVmVydGV4QXR0cmliQmluZGluZ3MpOiBJbml0aWFsaXplIGFsbCB2ZXJ0ZXgg
YXR0cmliIGJpbmRpbmcuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlZlcnRleEF0
dHJpYlN0YXRlOjpWZXJ0ZXhBdHRyaWJTdGF0ZSk6IEFkZCBpbml0aWFsaXplZCBzdGF0ZS4KKwog
MjAxMC0wNS0yNCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xC
dWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
Y3BwCShyZXZpc2lvbiA1OTkzOSkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsNiBAQCBQYXNzUmVmUHRyPFdlYkdMQnVm
ZmVyPiBXZWJHTEJ1ZmZlcjo6Y3JlCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHTEJ1ZmZl
cihjdHgpKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gV2ViR0xCdWZmZXI6OmNyZWF0
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGN0eCwgUGxhdGZvcm0zRE9iamVjdCBvYmopCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJHTEJ1ZmZlcihjdHgsIG9iaikpOwotfQotCiBXZWJH
TEJ1ZmZlcjo6V2ViR0xCdWZmZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjdHgpCiAgICAgOiBD
YW52YXNPYmplY3QoY3R4KQogICAgICwgbV9lbGVtZW50QXJyYXlCdWZmZXJCeXRlTGVuZ3RoKDAp
CkBAIC01MiwxNCArNDcsNiBAQCBXZWJHTEJ1ZmZlcjo6V2ViR0xCdWZmZXIoV2ViR0xSZW5kZXJp
bmdDCiAgICAgY2xlYXJDYWNoZWRNYXhJbmRpY2VzKCk7CiB9CiAKLVdlYkdMQnVmZmVyOjpXZWJH
TEJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGN0eCwgUGxhdGZvcm0zRE9iamVjdCBvYmop
Ci0gICAgOiBDYW52YXNPYmplY3QoY3R4KQotICAgICwgbV9uZXh0QXZhaWxhYmxlQ2FjaGVFbnRy
eSgwKQotewotICAgIHNldE9iamVjdChvYmosIGZhbHNlKTsKLSAgICBjbGVhckNhY2hlZE1heElu
ZGljZXMoKTsKLX0KLQogdm9pZCBXZWJHTEJ1ZmZlcjo6X2RlbGV0ZU9iamVjdChQbGF0Zm9ybTNE
T2JqZWN0IG9iamVjdCkKIHsKICAgICBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmRl
bGV0ZUJ1ZmZlcihvYmplY3QpOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaAkocmV2
aXNpb24gNTk5MzkpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM5LDEwICszOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCB+V2ViR0xCdWZmZXIoKSB7IGRlbGV0ZU9iamVjdCgpOyB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5n
Q29udGV4dCopOwotICAgICAgICAKLSAgICAgICAgLy8gRm9yIHF1ZXJ5aW5nIHByZXZpb3VzbHkg
Y3JlYXRlZCBvYmplY3RzIHZpYSBlLmcuIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cgotICAgICAgICAvLyBGSVhNRTogc2hvdWxkIGNvbnNpZGVyIGNhbm9uaWNhbGl6aW5nIHRoZXNl
IG9iamVjdHMKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqLCBQbGF0Zm9ybTNET2JqZWN0KTsKIAogICAgICAgICBib29s
IGFzc29jaWF0ZUJ1ZmZlckRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGludCBzaXplKTsKICAg
ICAgICAgYm9vbCBhc3NvY2lhdGVCdWZmZXJEYXRhKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBBcnJh
eUJ1ZmZlclZpZXcqIGFycmF5KTsKQEAgLTU5LDcgKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBXZWJHTEJ1ZmZlcihXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqKTsKLSAgICAgICAgV2ViR0xCdWZmZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiwgUGxh
dGZvcm0zRE9iamVjdCBvYmopOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIF9kZWxl
dGVPYmplY3QoUGxhdGZvcm0zRE9iamVjdCBvKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDU5OTM5KQorKysg
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDQsNiArMTA0LDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRl
cmluZ0NvbgogICAgIG1faW1wbGVtZW50YXRpb25Db2xvclJlYWRUeXBlID0gaW1wbGVtZW50YXRp
b25Db2xvclJlYWRUeXBlOwogICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpKQogICAgICAgICBj
cmVhdGVGYWxsYmFja0JsYWNrVGV4dHVyZXMxeDEoKTsKKyAgICBpbml0aWFsaXplVmVydGV4QXR0
cmliQmluZGluZ3MoKTsKICAgICBtX2NvbnRleHQtPnJlc2hhcGUoY2FudmFzKCktPndpZHRoKCks
IGNhbnZhcygpLT5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXMoKS0+d2lkdGgoKSwgY2FudmFzKCktPmhlaWdodCgpKTsKIH0KQEAgLTE1MDEsMTMgKzE1MDIs
MTMgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VgogICAgIFdlYkdM
U3RhdGVSZXN0b3Jlcih0aGlzLCBmYWxzZSk7CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkc6
IHsKKyAgICAgICAgaWYgKGluZGV4ID49IG1fdmVydGV4QXR0cmliU3RhdGUuc2l6ZSgpIHx8ICFt
X3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS5pbml0aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKICAgICAgICAgaW50IG5hbWUgPSAwOwogICAgICAgICBtX2NvbnRl
eHQtPmdldFZlcnRleEF0dHJpYml2KGluZGV4LCBwbmFtZSwgJm5hbWUpOwogICAgICAgICBpZiAo
bmFtZSA9PSAwKQogICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICBS
ZWZQdHI8V2ViR0xCdWZmZXI+IHRtcCA9IFdlYkdMQnVmZmVyOjpjcmVhdGUodGhpcywgbmFtZSk7
Ci0gICAgICAgIGFkZE9iamVjdCh0bXAuZ2V0KCkpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KHRtcCkpOworICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKGZpbmRCdWZmZXIobmFtZSkpOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOiB7CkBAIC0xNTE1LDggKzE1MTYs
MTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VgogICAgICAgICBt
X2NvbnRleHQtPmdldFZlcnRleEF0dHJpYml2KGluZGV4LCBwbmFtZSwgJnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOwogICAgIH0K
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NJWkU6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFOiB7Cisg
ICAgICAgIGludCB2YWx1ZSA9IDA7CisgICAgICAgIG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmli
aXYoaW5kZXgsIHBuYW1lLCAmdmFsdWUpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0
YXRpY19jYXN0PGxvbmc+KHZhbHVlKSk7CisgICAgfQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFOiB7CisgICAgICAgIGlmIChpbmRleCA+PSBt
X3ZlcnRleEF0dHJpYlN0YXRlLnNpemUoKSB8fCAhbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF0u
aW5pdGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKDBMKTsKICAgICAg
ICAgaW50IHZhbHVlID0gMDsKICAgICAgICAgbV9jb250ZXh0LT5nZXRWZXJ0ZXhBdHRyaWJpdihp
bmRleCwgcG5hbWUsICZ2YWx1ZSk7CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGlj
X2Nhc3Q8bG9uZz4odmFsdWUpKTsKQEAgLTI4ODAsNiArMjg4Nyw3IEBAIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojp2ZXJ0ZXhBdHRyaWIKICAgICAgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtp
bmR4XS5udW1FbGVtZW50cyA9IDEgKyAoYnl0ZXNSZW1haW5pbmcgLSBieXRlc1BlckVsZW1lbnQp
IC8gdmFsaWRhdGVkU3RyaWRlOwogCiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVy
KGluZHgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgb2Zmc2V0KTsKKyAgICBtX3Zl
cnRleEF0dHJpYlN0YXRlW2luZHhdLmluaXRpYWxpemVkID0gdHJ1ZTsKICAgICBjbGVhbnVwQWZ0
ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCkBAIC0yOTQxLDYgKzI5NDksMTggQEAgUGFzc1Jl
ZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gV2ViR0xSZW5kZQogICAgIHJldHVybiAwOwogfQogCitQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZpbmRCdWZmZXIo
UGxhdGZvcm0zRE9iamVjdCBvYmopCit7CisgICAgSGFzaFNldDxSZWZQdHI8Q2FudmFzT2JqZWN0
PiA+OjppdGVyYXRvciBwZW5kID0gbV9jYW52YXNPYmplY3RzLmVuZCgpOworICAgIGZvciAoSGFz
aFNldDxSZWZQdHI8Q2FudmFzT2JqZWN0PiA+OjppdGVyYXRvciBpdCA9IG1fY2FudmFzT2JqZWN0
cy5iZWdpbigpOyBpdCAhPSBwZW5kOyArK2l0KSB7CisgICAgICAgIGlmICgoKml0KS0+aXNCdWZm
ZXIoKSAmJiAoKml0KS0+b2JqZWN0KCkgPT0gb2JqKSB7CisgICAgICAgICAgICBSZWZQdHI8V2Vi
R0xCdWZmZXI+IGJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xCdWZmZXIqPigoKml0KS5n
ZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gYnVmZmVyLnJlbGVhc2UoKTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwogV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0Qm9vbGVhblBhcmFtZXRlcih1bnNpZ25lZCBsb25nIHBuYW1lKQogewogICAgIHVu
c2lnbmVkIGNoYXIgdmFsdWU7CkBAIC0zMDk0LDYgKzMxMTQsMjAgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmNyZWF0ZUZhbGxiYQogICAgIG1fY29udGV4dC0+YmluZFRleHR1cmUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQ1VCRV9NQVAsIDApOwogfQogCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEF0dHJpYkJpbmRpbmdzKCkKK3sKKyAgICBF
eGNlcHRpb25Db2RlIGVjOworCisgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIgPSBjcmVh
dGVCdWZmZXIoKTsKKyAgICBiaW5kQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZG
RVIsIGJ1ZmZlci5nZXQoKSwgZWMpOworICAgIGJ1ZmZlckRhdGEoR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUiwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXLCBlYyk7Cisg
ICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5yZXNpemUobV9tYXhWZXJ0ZXhBdHRyaWJzKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGlpID0gMDsgaWkgPCBtX21heFZlcnRleEF0dHJpYnM7ICsraWkpCisgICAg
ICAgIHZlcnRleEF0dHJpYlBvaW50ZXIoaWksIDQsIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVCwg
ZmFsc2UsIDAsIDAsIGVjKTsKKyAgICBtX3ZlcnRleEF0dHJpYlN0YXRlLmNsZWFyKCk7CisgICAg
YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCAwLCBlYyk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpCklu
ZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlz
aW9uIDU5OTM5KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAxLDYgKzMwMSw3IEBAIGNsYXNzIFdlYktpdENTU01hdHJp
eDsKICAgICAgICAgdm9pZCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAgICAgICAgIFBh
c3NSZWZQdHI8V2ViR0xUZXh0dXJlPiBmaW5kVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKICAg
ICAgICAgUGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gZmluZFJlbmRlcmJ1ZmZlcihQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICAgICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gZmluZEJ1ZmZl
cihQbGF0Zm9ybTNET2JqZWN0KTsKIAogICAgICAgICB2b2lkIG1hcmtDb250ZXh0Q2hhbmdlZCgp
OwogICAgICAgICB2b2lkIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChib29sIGNoYW5nZWQpCkBA
IC0zMzcsOSArMzM4LDEwIEBAIGNsYXNzIFdlYktpdENTU01hdHJpeDsKICAgICAgICAgLy8gQ2Fj
aGVkIHZhbHVlcyBmb3IgdmVydGV4IGF0dHJpYiByYW5nZSBjaGVja3MKICAgICAgICAgY2xhc3Mg
VmVydGV4QXR0cmliU3RhdGUgewogICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBWZXJ0ZXhB
dHRyaWJTdGF0ZSgpIDogZW5hYmxlZChmYWxzZSksIG51bUVsZW1lbnRzKDApIHsgfQorICAgICAg
ICAgICAgVmVydGV4QXR0cmliU3RhdGUoKSA6IGVuYWJsZWQoZmFsc2UpLCBudW1FbGVtZW50cygw
KSwgaW5pdGlhbGl6ZWQoZmFsc2UpIHsgfQogICAgICAgICAgICAgYm9vbCBlbmFibGVkOwogICAg
ICAgICAgICAgbG9uZyBudW1FbGVtZW50czsKKyAgICAgICAgICAgIGJvb2wgaW5pdGlhbGl6ZWQ7
CiAgICAgICAgIH07CiAgICAgICAgIAogICAgICAgICBWZWN0b3I8VmVydGV4QXR0cmliU3RhdGU+
IG1fdmVydGV4QXR0cmliU3RhdGU7CkBAIC0zODksNiArMzkxLDggQEAgY2xhc3MgV2ViS2l0Q1NT
TWF0cml4OwogCiAgICAgICAgIHZvaWQgY3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCk7
CiAKKyAgICAgICAgdm9pZCBpbml0aWFsaXplVmVydGV4QXR0cmliQmluZGluZ3MoKTsKKwogICAg
ICAgICBmcmllbmQgY2xhc3MgV2ViR0xTdGF0ZVJlc3RvcmVyOwogICAgIH07CiAKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDYwMjA0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDUtMjUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNdXN0
IG5vdCBjcmFzaCBpZiB2ZXJ0ZXggYXR0cmlidXRlIGFycmF5IGlzIGVuYWJsZWQgYnV0IHVuaW5p
dGlhbGl6ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM4OTYyCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nbC1lbmFibGUtdmVydGV4LWF0
dHJpYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2ds
LWVuYWJsZS12ZXJ0ZXgtYXR0cmliLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA1LTI1ICBKYW1lcyBS
b2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBwaXhl
bCBleHBlY3RhdGlvbnMgY2hhbmdlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtZW5hYmxlLXZlcnRleC1hdHRyaWItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wt
ZW5hYmxlLXZlcnRleC1hdHRyaWItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI5IEBACitXZWJHTCBFbmFibGUgVmVydGV4IEF0dHJpYiBUZXN0CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworUEFTUyBnbCA9IGluaXRXZWJHTCgnZXhhbXBsZScsICd2c2hhZGVyJywg
J2ZzaGFkZXInLCBbICd2UG9zaXRpb24nIF0sIFsgMCwgMCwgMCwgMSBdLCAxKSBpcyBub24tbnVs
bC4KK0NoZWNraW5nIGRlZmF1bHQgdmVydGV4IGF0dHJpYnMKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0
cmliKDMsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIG51bGwKK1BB
U1MgZ2wuZ2V0VmVydGV4QXR0cmliKDMsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCkg
aXMgZmFsc2UKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDMsIGdsLlZFUlRFWF9BVFRSSUJfQVJS
QVlfU0laRSkgaXMgNAorUEFTUyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMywgZ2wuVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9TVFJJREUpIGlzIDAKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDMsIGdsLlZFUlRF
WF9BVFRSSUJfQVJSQVlfVFlQRSkgaXMgZ2wuRkxPQVQKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmli
KDMsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCkgaXMgZmFsc2UKK1BBU1MgZ2wu
Z2V0VmVydGV4QXR0cmliKDMsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQikgaXMgWzAsIDAsIDAs
IDFdCitQQVNTIGdsLmdldFZlcnRleEF0dHJpYk9mZnNldCgzLCBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX1BPSU5URVIpIGlzIDAKK0NoZWNraW5nIHNwZWNpZmllZCB2ZXJ0ZXggYXR0cmlicworUEFT
UyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMCwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklO
RElORykgaXMgdmVydGV4T2JqZWN0CitQQVNTIGdsLmdldFZlcnRleEF0dHJpYigwLCBnbC5WRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpIGlzIGZhbHNlCitQQVNTIGdsLmdldFZlcnRleEF0dHJp
YigwLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1NJWkUpIGlzIDMKK1BBU1MgZ2wuZ2V0VmVydGV4
QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSkgaXMgZ2wuRkxPQVQKK1BBU1Mg
Z2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCkg
aXMgZmFsc2UKK1BBU1MgZ2wuZ2V0VmVydGV4QXR0cmliT2Zmc2V0KDAsIGdsLlZFUlRFWF9BVFRS
SUJfQVJSQVlfUE9JTlRFUikgaXMgMAorVGVzdGluZyBlbmFibGUgdmVydGV4IGF0dHJpYnMKK1BB
U1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnbC5nZXRFcnJvcigpIGlzIGds
Lk5PX0VSUk9SCitQQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLWVuYWJsZS12ZXJ0ZXgtYXR0
cmliLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9n
bC1lbmFibGUtdmVydGV4LWF0dHJpYi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBA
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbHMzZC5q
cyI+IDwvc2NyaXB0PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0
ZXgiPgorYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9Q
b3NpdGlvbiA9IHZQb3NpdGlvbjsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVy
IiB0eXBlPSJ4LXNoYWRlci94LWZyYWdtZW50Ij4KK3ZvaWQgbWFpbigpCit7CisgICAgZ2xfRnJh
Z0NvbG9yID0gdmVjNCgxLjAsIDAuMCwgMC4wLCAxLjApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxjYW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PC9j
YW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiV2ViR0wgRW5hYmxlIFZlcnRleCBBdHRyaWIg
VGVzdCIpOworCit2YXIgZ2wgPSBudWxsOworc2hvdWxkQmVOb25OdWxsKCJnbCA9IGluaXRXZWJH
TCgnZXhhbXBsZScsICd2c2hhZGVyJywgJ2ZzaGFkZXInLCBbICd2UG9zaXRpb24nIF0sIFsgMCwg
MCwgMCwgMSBdLCAxKSIpOworCitkZWJ1ZygiQ2hlY2tpbmcgZGVmYXVsdCB2ZXJ0ZXggYXR0cmli
cyIpOworc2hvdWxkQmUoImdsLmdldFZlcnRleEF0dHJpYigzLCBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX0JVRkZFUl9CSU5ESU5HKSIsICJudWxsIik7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0
cmliKDMsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCkiLCAiZmFsc2UiKTsKK3Nob3Vs
ZEJlKCJnbC5nZXRWZXJ0ZXhBdHRyaWIoMywgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFKSIs
ICI0Iik7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliKDMsIGdsLlZFUlRFWF9BVFRSSUJf
QVJSQVlfU1RSSURFKSIsICIwIik7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliKDMsIGds
LlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSkiLCAiZ2wuRkxPQVQiKTsKK3Nob3VsZEJlKCJnbC5n
ZXRWZXJ0ZXhBdHRyaWIoMywgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEKSIsICJm
YWxzZSIpOworc2hvdWxkQmUoImdsLmdldFZlcnRleEF0dHJpYigzLCBnbC5DVVJSRU5UX1ZFUlRF
WF9BVFRSSUIpIiwgIlswLCAwLCAwLCAxXSIpOworc2hvdWxkQmUoImdsLmdldFZlcnRleEF0dHJp
Yk9mZnNldCgzLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIpIiwgIjAiKTsKKworZGVi
dWcoIkNoZWNraW5nIHNwZWNpZmllZCB2ZXJ0ZXggYXR0cmlicyIpOwordmFyIHZlcnRleE9iamVj
dCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZl
cnRleE9iamVjdCk7CitnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IFdlYkdMRmxv
YXRBcnJheShbIDAsMC41LDAsIC0wLjUsLTAuNSwwLCAwLjUsLTAuNSwwIF0pLCBnbC5TVEFUSUNf
RFJBVyk7CitnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDMsIGdsLkZMT0FULCBmYWxzZSwgMCwg
MCk7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJS
QVlfQlVGRkVSX0JJTkRJTkcpIiwgInZlcnRleE9iamVjdCIpOworc2hvdWxkQmUoImdsLmdldFZl
cnRleEF0dHJpYigwLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQpIiwgImZhbHNlIik7
CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
U0laRSkiLCAiMyIpOworc2hvdWxkQmUoImdsLmdldFZlcnRleEF0dHJpYigwLCBnbC5WRVJURVhf
QVRUUklCX0FSUkFZX1RZUEUpIiwgImdsLkZMT0FUIik7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4
QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCkiLCAiZmFsc2UiKTsK
Ky8vIEZJWE1FOiBXZSBuZWVkIHRvIGVtdWxhdGUgMCBmb3IgQ1VSUkVOVF9WRVJURVhfQVRUUklC
CisvLyBzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsLkNVUlJFTlRfVkVSVEVYX0FU
VFJJQikiLCAiWzAsIDAsIDAsIDFdIik7CitzaG91bGRCZSgiZ2wuZ2V0VmVydGV4QXR0cmliT2Zm
c2V0KDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUikiLCAiMCIpOworCitkZWJ1Zygi
VGVzdGluZyBlbmFibGUgdmVydGV4IGF0dHJpYnMiKTsKK2dsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KDApOworc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKK2dsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KDMpOworc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wu
Tk9fRVJST1IiKTsKK2dsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCAzKTsKK3Nob3VsZEJl
KCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>