<?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>23743</bug_id>
          
          <creation_ts>2009-02-04 14:36:01 -0800</creation_ts>
          <short_desc>Memory smasher in public GIFImageDecoder</short_desc>
          <delta_ts>2009-02-04 16:00:43 -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>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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="Peter Kasting">pkasting</reporter>
          <assigned_to name="Peter Kasting">pkasting</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>108333</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-02-04 14:36:01 -0800</bug_when>
    <thetext>GIFImageDecoder.cpp (both the skia and Cairo versions) has a memory smashing bug.  This doesn&apos;t affect Safari, but is a topcrash cause for the Chromium trunk.

The problem is that clearFrameBufferCache() assumes it only needs to worry about preserving the last complete frame, but initFrameBuffer() and other functions can skip over frames with a DisposeOverwritePrevious disposal method to find prior complete frames.  So the code in clearFrameBufferCache() needs to get more complex to take this into account.

Additionally, to avoid wasting more memory than we need to, RGBA32Buffer::clear() should only clear the minimum amount of metadata it needs to, because various functions will still need other data after the framebuffer itself is no longer necessary.  If we don&apos;t change clear() we&apos;d need to clear fewer frames.

Patch coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108334</commentid>
    <comment_count>1</comment_count>
      <attachid>27329</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-02-04 14:38:31 -0800</bug_when>
    <thetext>Created attachment 27329
patch v1

Note that the Cairo and Skia changes here are identical modulo the RGBA32Buffer members.  Just another reminder that I eventually need to merge these into one set of decoders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108347</commentid>
    <comment_count>2</comment_count>
      <attachid>27329</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-02-04 15:27:24 -0800</bug_when>
    <thetext>Comment on attachment 27329
patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108364</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-02-04 16:00:43 -0800</bug_when>
    <thetext>Fixed in r40641.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27329</attachid>
            <date>2009-02-04 14:38:31 -0800</date>
            <delta_ts>2009-02-04 15:27:24 -0800</delta_ts>
            <desc>patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11049</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDYyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDktMDItMDQgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc0MworICAgICAgICBG
aXggbWVtb3J5IGNvcnJ1cHRpb24gd2l0aCBvcGVuLXNvdXJjZSBHSUYgZGVjb2RlcnMuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJHQkEzMkJ1ZmZlcjo6Y2xlYXIpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lG
SW1hZ2VEZWNvZGVyOjpjbGVhckZyYW1lQnVmZmVyQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3NraWEvR0lGSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdJRkltYWdlRGVjb2Rlcjo6Y2xlYXJGcmFtZUJ1ZmZlckNhY2hlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdJRkltYWdlRGVjb2Rlcjo6aW5pdEZyYW1lQnVmZmVyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9za2lhL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6UkdCQTMyQnVmZmVyOjpjbGVhcik6CisKIDIwMDktMDItMDQgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM0LCBibGFuayBjb250ZW50IG9uIGJsb2dzLm1zZG4uY29tLgpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5o
CShyZXZpc2lvbiA0MDYyNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1h
Z2VEZWNvZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDEyICs1NywxMSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNsZWFyKCkgewogICAgICAgbV9ieXRlcy5jbGVhcigpOwotICAgICAgbV9yZWN0
ID0gSW50UmVjdCgpOwotICAgICAgbV9oZWlnaHQgPSAwOwogICAgICAgbV9zdGF0dXMgPSBGcmFt
ZUVtcHR5OwotICAgICAgbV9kdXJhdGlvbiA9IDA7Ci0gICAgICBtX2Rpc3Bvc2FsTWV0aG9kID0g
RGlzcG9zZU5vdFNwZWNpZmllZDsKLSAgICAgIG1faGFzQWxwaGEgPSBmYWxzZTsKKyAgICAgIC8v
IE5PVEU6IERvIG5vdCByZXNldCBvdGhlciBtZW1iZXJzIGhlcmU7IGNsZWFyRnJhbWVCdWZmZXJD
YWNoZSgpIGNhbGxzCisgICAgICAvLyB0aGlzIHRvIGZyZWUgdGhlIGJpdG1hcCBkYXRhLCBidXQg
b3RoZXIgZnVuY3Rpb25zIGxpa2UKKyAgICAgIC8vIGluaXRGcmFtZUJ1ZmZlcigpIGFuZCBmcmFt
ZUNvbXBsZXRlKCkgbWF5IHN0aWxsIG5lZWQgdG8gcmVhZCBvdGhlcgorICAgICAgLy8gbWV0YWRh
dGEgb3V0IG9mIHRoaXMgZnJhbWUgbGF0ZXIuCiAgICAgfQogCiAgICAgY29uc3QgUkdCQTMyQXJy
YXkmIGJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlczsgfQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYvR0lGSW1hZ2VEZWNvZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3Bw
CShyZXZpc2lvbiA0MDYyNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lm
L0dJRkltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw3ICsxODgsOCBAQCB2
b2lkIEdJRkltYWdlRGVjb2Rlcjo6Y2xlYXJGcmFtZUJ1ZmZlckNhCiAgICAgLy8gSW4gc29tZSBj
YXNlcywgbGlrZSBpZiB0aGUgZGVjb2RlciB3YXMgZGVzdHJveWVkIHdoaWxlIGFuaW1hdGluZywg
d2UKICAgICAvLyBjYW4gYmUgYXNrZWQgdG8gY2xlYXIgbW9yZSBmcmFtZXMgdGhhbiB3ZSBjdXJy
ZW50bHkgaGF2ZS4KICAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuOyAgLy8gTm90aGluZyB0byBkby4KKyAgICAgICAgcmV0dXJuOyAvLyBOb3RoaW5n
IHRvIGRvLgorCiAgICAgLy8gVGhlICItMSIgaGVyZSBpcyB0cmlja3kuICBJdCBkb2VzIG5vdCBt
ZWFuIHRoYXQgfGNsZWFyQmVmb3JlRnJhbWV8IGlzIHRoZQogICAgIC8vIGxhc3QgZnJhbWUgd2Ug
d2lzaCB0byBwcmVzZXJ2ZSwgYnV0IHJhdGhlciB0aGF0IHdlIG5ldmVyIHdhbnQgdG8gY2xlYXIK
ICAgICAvLyB0aGUgdmVyeSBsYXN0IGZyYW1lIGluIHRoZSBjYWNoZTogaXQncyBlbXB0eSAoc28g
Y2xlYXJpbmcgaXQgaXMKQEAgLTE5OSwyMSArMjAwLDM2IEBAIHZvaWQgR0lGSW1hZ2VEZWNvZGVy
OjpjbGVhckZyYW1lQnVmZmVyQ2EKICAgICAvLyB0aGlzIGNhc2UuCiAgICAgY2xlYXJCZWZvcmVG
cmFtZSA9IHN0ZDo6bWluKGNsZWFyQmVmb3JlRnJhbWUsIG1fZnJhbWVCdWZmZXJDYWNoZS5zaXpl
KCkgLSAxKTsKICAgICBjb25zdCBWZWN0b3I8UkdCQTMyQnVmZmVyPjo6aXRlcmF0b3IgZW5kKG1f
ZnJhbWVCdWZmZXJDYWNoZS5iZWdpbigpICsgY2xlYXJCZWZvcmVGcmFtZSk7Ci0gICAgZm9yIChW
ZWN0b3I8UkdCQTMyQnVmZmVyPjo6aXRlcmF0b3IgaShtX2ZyYW1lQnVmZmVyQ2FjaGUuYmVnaW4o
KSk7IGkgIT0gZW5kOyArK2kpIHsKLSAgICAgICAgaWYgKGktPnN0YXR1cygpID09IFJHQkEzMkJ1
ZmZlcjo6RnJhbWVFbXB0eSkKLSAgICAgICAgICAgIGNvbnRpbnVlOyAgLy8gTm90aGluZyB0byBk
by4KLQotICAgICAgICAvLyBUaGUgbGF5b3V0IG9mIGZyYW1lcyBpczoKLSAgICAgICAgLy8gW2Vt
cHR5IGZyYW1lc11bY29tcGxldGUgZnJhbWVzXVtwYXJ0aWFsIGZyYW1lXVtlbXB0eSBmcmFtZXNd
Ci0gICAgICAgIC8vIC4uLndoZXJlIGVhY2ggb2YgdGhlc2UgZ3JvdXBzIG1heSBiZSBlbXB0eS4g
IFdlIHNob3VsZCBub3QgY2xlYXIgYQotICAgICAgICAvLyBwYXJ0aWFsIGZyYW1lIHNpbmNlIHRo
YXQncyB3aGF0J3MgYmVpbmcgZGVjb2RlZCByaWdodCBub3csIGFuZCB3ZQotICAgICAgICAvLyBh
bHNvIHNob3VsZCBub3QgY2xlYXIgdGhlIGxhc3QgY29tcGxldGUgZnJhbWUsIHNpbmNlIGl0IG1h
eSBiZSBuZWVkZWQKLSAgICAgICAgLy8gd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5leHQgZnJhbWUu
ICBOb3RlIHRoYXQgImkgKyAxIiBpcyBzYWZlIHNpbmNlCi0gICAgICAgIC8vIGkgPCBlbmQgPCBt
X2ZyYW1lQnVmZmVyQ2FjaGUuZW5kKCkuCi0gICAgICAgIGlmICgoaS0+c3RhdHVzKCkgPT0gUkdC
QTMyQnVmZmVyOjpGcmFtZVBhcnRpYWwpIHx8ICgoaSArIDEpLT5zdGF0dXMoKSAhPSBSR0JBMzJC
dWZmZXI6OkZyYW1lQ29tcGxldGUpKQotICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaS0+
Y2xlYXIoKTsKKyAgICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIGZyYW1lcyBzdWNoIHRoYXQ6Cisg
ICAgLy8gICAqIFdlIGRvbid0IGNsZWFyIHxlbmR8CisgICAgLy8gICAqIFdlIGRvbid0IGNsZWFy
IHRoZSBmcmFtZSB3ZSdyZSBjdXJyZW50bHkgZGVjb2RpbmcKKyAgICAvLyAgICogV2UgZG9uJ3Qg
Y2xlYXIgYW55IGZyYW1lIGZyb20gd2hpY2ggYSBmdXR1cmUgaW5pdEZyYW1lQnVmZmVyKCkgY2Fs
bAorICAgIC8vICAgICB3aWxsIGNvcHkgYml0bWFwIGRhdGEKKyAgICAvLyBBbGwgb3RoZXIgZnJh
bWVzIGNhbiBiZSBjbGVhcmVkLiAgQmVjYXVzZSBvZiB0aGUgY29uc3RyYWludHMgb24gd2hlbgor
ICAgIC8vIEltYWdlU291cmNlOjpjbGVhcigpIGNhbiBiZSBjYWxsZWQgKHNlZSBJbWFnZVNvdXJj
ZS5oKSwgd2UncmUgZ3VhcmFudGVlZAorICAgIC8vIG5vdCB0byBoYXZlIG5vbi1lbXB0eSBmcmFt
ZXMgYWZ0ZXIgdGhlIGZyYW1lIHdlJ3JlIGN1cnJlbnRseSBkZWNvZGluZy4KKyAgICAvLyBTbywg
c2NhbiBiYWNrd2FyZHMgZnJvbSB8ZW5kfCBhcyBmb2xsb3dzOgorICAgIC8vICAgKiBJZiB0aGUg
ZnJhbWUgaXMgZW1wdHksIHdlJ3JlIHN0aWxsIHBhc3QgYW55IGZyYW1lcyB3ZSBjYXJlIGFib3V0
LgorICAgIC8vICAgKiBJZiB0aGUgZnJhbWUgaXMgY29tcGxldGUsIGJ1dCBpcyBEaXNwb3NlT3Zl
cndyaXRlUHJldmlvdXMsIHdlJ2xsCisgICAgLy8gICAgIHNraXAgb3ZlciBpdCBpbiBmdXR1cmUg
aW5pdEZyYW1lQnVmZmVyKCkgY2FsbHMuICBXZSBjYW4gY2xlYXIgaXQKKyAgICAvLyAgICAgdW5s
ZXNzIGl0J3MgfGVuZHwsIGFuZCBrZWVwIHNjYW5uaW5nLiAgRm9yIGFueSBvdGhlciBkaXNwb3Nh
bCBtZXRob2QsCisgICAgLy8gICAgIHN0b3Agc2Nhbm5pbmcsIGFzIHdlJ3ZlIGZvdW5kIHRoZSBm
cmFtZSBpbml0RnJhbWVCdWZmZXIoKSB3aWxsIG5lZWQKKyAgICAvLyAgICAgbmV4dC4KKyAgICAv
LyAgICogSWYgdGhlIGZyYW1lIGlzIHBhcnRpYWwsIHdlJ3JlIGRlY29kaW5nIGl0LCBzbyBkb24n
dCBjbGVhciBpdDsgaWYgaXQKKyAgICAvLyAgICAgaGFzIGEgZGlzcG9zYWwgbWV0aG9kIG90aGVy
IHRoYW4gRGlzcG9zZU92ZXJ3cml0ZVByZXZpb3VzLCBzdG9wCisgICAgLy8gICAgIHNjYW5uaW5n
LCBhcyB3ZSdsbCBvbmx5IG5lZWQgdGhpcyBmcmFtZSB3aGVuIGRlY29kaW5nIHRoZSBuZXh0IG9u
ZS4KKyAgICBWZWN0b3I8UkdCQTMyQnVmZmVyPjo6aXRlcmF0b3IgaShlbmQpOworICAgIGZvciAo
OyAoaSAhPSBtX2ZyYW1lQnVmZmVyQ2FjaGUuYmVnaW4oKSkgJiYgKChpLT5zdGF0dXMoKSA9PSBS
R0JBMzJCdWZmZXI6OkZyYW1lRW1wdHkpIHx8IChpLT5kaXNwb3NhbE1ldGhvZCgpID09IFJHQkEz
MkJ1ZmZlcjo6RGlzcG9zZU92ZXJ3cml0ZVByZXZpb3VzKSk7IC0taSkgeworICAgICAgICBpZiAo
KGktPnN0YXR1cygpID09IFJHQkEzMkJ1ZmZlcjo6RnJhbWVDb21wbGV0ZSkgJiYgKGkgIT0gZW5k
KSkKKyAgICAgICAgICAgIGktPmNsZWFyKCk7CisgICAgfQorCisgICAgLy8gTm93IHxpfCBob2xk
cyB0aGUgbGFzdCBmcmFtZSB3ZSBuZWVkIHRvIHByZXNlcnZlOyBjbGVhciBwcmlvciBmcmFtZXMu
CisgICAgZm9yIChWZWN0b3I8UkdCQTMyQnVmZmVyPjo6aXRlcmF0b3IgaihtX2ZyYW1lQnVmZmVy
Q2FjaGUuYmVnaW4oKSk7IGogIT0gaTsgKytqKSB7CisgICAgICAgIEFTU0VSVChqLT5zdGF0dXMo
KSAhPSBSR0JBMzJCdWZmZXI6OkZyYW1lUGFydGlhbCk7CisgICAgICAgIGlmIChqLT5zdGF0dXMo
KSAhPSBSR0JBMzJCdWZmZXI6OkZyYW1lRW1wdHkpCisgICAgICAgICAgICBqLT5jbGVhcigpOwog
ICAgIH0KIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9za2lhL0dJ
RkltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9za2lhL0dJRkltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDQwNjI3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9za2lhL0dJRkltYWdlRGVjb2Rlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5Myw2ICsxOTMsNyBAQCB2b2lkIEdJRkltYWdlRGVjb2Rlcjo6Y2xl
YXJGcmFtZUJ1ZmZlckNhCiAgICAgLy8gY2FuIGJlIGFza2VkIHRvIGNsZWFyIG1vcmUgZnJhbWVz
IHRoYW4gd2UgY3VycmVudGx5IGhhdmUuCiAgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsgLy8gTm90aGluZyB0byBkby4KKwogICAgIC8vIFRoZSAi
LTEiIGhlcmUgaXMgdHJpY2t5LiAgSXQgZG9lcyBub3QgbWVhbiB0aGF0IHxjbGVhckJlZm9yZUZy
YW1lfCBpcyB0aGUKICAgICAvLyBsYXN0IGZyYW1lIHdlIHdpc2ggdG8gcHJlc2VydmUsIGJ1dCBy
YXRoZXIgdGhhdCB3ZSBuZXZlciB3YW50IHRvIGNsZWFyCiAgICAgLy8gdGhlIHZlcnkgbGFzdCBm
cmFtZSBpbiB0aGUgY2FjaGU6IGl0J3MgZW1wdHkgKHNvIGNsZWFyaW5nIGl0IGlzCkBAIC0yMDMs
MjEgKzIwNCwzNiBAQCB2b2lkIEdJRkltYWdlRGVjb2Rlcjo6Y2xlYXJGcmFtZUJ1ZmZlckNhCiAg
ICAgLy8gdGhpcyBjYXNlLgogICAgIGNsZWFyQmVmb3JlRnJhbWUgPSBzdGQ6Om1pbihjbGVhckJl
Zm9yZUZyYW1lLCBtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpIC0gMSk7CiAgICAgY29uc3QgVmVj
dG9yPFJHQkEzMkJ1ZmZlcj46Oml0ZXJhdG9yIGVuZChtX2ZyYW1lQnVmZmVyQ2FjaGUuYmVnaW4o
KSArIGNsZWFyQmVmb3JlRnJhbWUpOwotICAgIGZvciAoVmVjdG9yPFJHQkEzMkJ1ZmZlcj46Oml0
ZXJhdG9yIGkobV9mcmFtZUJ1ZmZlckNhY2hlLmJlZ2luKCkpOyBpICE9IGVuZDsgKytpKSB7Ci0g
ICAgICAgIGlmIChpLT5zdGF0dXMoKSA9PSBSR0JBMzJCdWZmZXI6OkZyYW1lRW1wdHkpCi0gICAg
ICAgICAgICBjb250aW51ZTsgLy8gTm90aGluZyB0byBkby4KLQotICAgICAgICAvLyBUaGUgbGF5
b3V0IG9mIGZyYW1lcyBpczoKLSAgICAgICAgLy8gW2VtcHR5IGZyYW1lc11bY29tcGxldGUgZnJh
bWVzXVtwYXJ0aWFsIGZyYW1lXVtlbXB0eSBmcmFtZXNdCi0gICAgICAgIC8vIC4uLndoZXJlIGVh
Y2ggb2YgdGhlc2UgZ3JvdXBzIG1heSBiZSBlbXB0eS4gIFdlIHNob3VsZCBub3QgY2xlYXIgYQot
ICAgICAgICAvLyBwYXJ0aWFsIGZyYW1lIHNpbmNlIHRoYXQncyB3aGF0J3MgYmVpbmcgZGVjb2Rl
ZCByaWdodCBub3csIGFuZCB3ZQotICAgICAgICAvLyBhbHNvIHNob3VsZCBub3QgY2xlYXIgdGhl
IGxhc3QgY29tcGxldGUgZnJhbWUsIHNpbmNlIGl0IG1heSBiZSBuZWVkZWQKLSAgICAgICAgLy8g
d2hlbiBjb25zdHJ1Y3RpbmcgdGhlIG5leHQgZnJhbWUuICBOb3RlIHRoYXQgImkgKyAxIiBpcyBz
YWZlIHNpbmNlCi0gICAgICAgIC8vIGkgPCBlbmQgPCBtX2ZyYW1lQnVmZmVyQ2FjaGUuZW5kKCku
Ci0gICAgICAgIGlmICgoaS0+c3RhdHVzKCkgPT0gUkdCQTMyQnVmZmVyOjpGcmFtZVBhcnRpYWwp
IHx8ICgoaSArIDEpLT5zdGF0dXMoKSAhPSBSR0JBMzJCdWZmZXI6OkZyYW1lQ29tcGxldGUpKQot
ICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaS0+Y2xlYXIoKTsKKyAgICAvLyBXZSBuZWVk
IHRvIHByZXNlcnZlIGZyYW1lcyBzdWNoIHRoYXQ6CisgICAgLy8gICAqIFdlIGRvbid0IGNsZWFy
IHxlbmR8CisgICAgLy8gICAqIFdlIGRvbid0IGNsZWFyIHRoZSBmcmFtZSB3ZSdyZSBjdXJyZW50
bHkgZGVjb2RpbmcKKyAgICAvLyAgICogV2UgZG9uJ3QgY2xlYXIgYW55IGZyYW1lIGZyb20gd2hp
Y2ggYSBmdXR1cmUgaW5pdEZyYW1lQnVmZmVyKCkgY2FsbAorICAgIC8vICAgICB3aWxsIGNvcHkg
Yml0bWFwIGRhdGEKKyAgICAvLyBBbGwgb3RoZXIgZnJhbWVzIGNhbiBiZSBjbGVhcmVkLiAgQmVj
YXVzZSBvZiB0aGUgY29uc3RyYWludHMgb24gd2hlbgorICAgIC8vIEltYWdlU291cmNlOjpjbGVh
cigpIGNhbiBiZSBjYWxsZWQgKHNlZSBJbWFnZVNvdXJjZS5oKSwgd2UncmUgZ3VhcmFudGVlZAor
ICAgIC8vIG5vdCB0byBoYXZlIG5vbi1lbXB0eSBmcmFtZXMgYWZ0ZXIgdGhlIGZyYW1lIHdlJ3Jl
IGN1cnJlbnRseSBkZWNvZGluZy4KKyAgICAvLyBTbywgc2NhbiBiYWNrd2FyZHMgZnJvbSB8ZW5k
fCBhcyBmb2xsb3dzOgorICAgIC8vICAgKiBJZiB0aGUgZnJhbWUgaXMgZW1wdHksIHdlJ3JlIHN0
aWxsIHBhc3QgYW55IGZyYW1lcyB3ZSBjYXJlIGFib3V0LgorICAgIC8vICAgKiBJZiB0aGUgZnJh
bWUgaXMgY29tcGxldGUsIGJ1dCBpcyBEaXNwb3NlT3ZlcndyaXRlUHJldmlvdXMsIHdlJ2xsCisg
ICAgLy8gICAgIHNraXAgb3ZlciBpdCBpbiBmdXR1cmUgaW5pdEZyYW1lQnVmZmVyKCkgY2FsbHMu
ICBXZSBjYW4gY2xlYXIgaXQKKyAgICAvLyAgICAgdW5sZXNzIGl0J3MgfGVuZHwsIGFuZCBrZWVw
IHNjYW5uaW5nLiAgRm9yIGFueSBvdGhlciBkaXNwb3NhbCBtZXRob2QsCisgICAgLy8gICAgIHN0
b3Agc2Nhbm5pbmcsIGFzIHdlJ3ZlIGZvdW5kIHRoZSBmcmFtZSBpbml0RnJhbWVCdWZmZXIoKSB3
aWxsIG5lZWQKKyAgICAvLyAgICAgbmV4dC4KKyAgICAvLyAgICogSWYgdGhlIGZyYW1lIGlzIHBh
cnRpYWwsIHdlJ3JlIGRlY29kaW5nIGl0LCBzbyBkb24ndCBjbGVhciBpdDsgaWYgaXQKKyAgICAv
LyAgICAgaGFzIGEgZGlzcG9zYWwgbWV0aG9kIG90aGVyIHRoYW4gRGlzcG9zZU92ZXJ3cml0ZVBy
ZXZpb3VzLCBzdG9wCisgICAgLy8gICAgIHNjYW5uaW5nLCBhcyB3ZSdsbCBvbmx5IG5lZWQgdGhp
cyBmcmFtZSB3aGVuIGRlY29kaW5nIHRoZSBuZXh0IG9uZS4KKyAgICBWZWN0b3I8UkdCQTMyQnVm
ZmVyPjo6aXRlcmF0b3IgaShlbmQpOworICAgIGZvciAoOyAoaSAhPSBtX2ZyYW1lQnVmZmVyQ2Fj
aGUuYmVnaW4oKSkgJiYgKChpLT5zdGF0dXMoKSA9PSBSR0JBMzJCdWZmZXI6OkZyYW1lRW1wdHkp
IHx8IChpLT5kaXNwb3NhbE1ldGhvZCgpID09IFJHQkEzMkJ1ZmZlcjo6RGlzcG9zZU92ZXJ3cml0
ZVByZXZpb3VzKSk7IC0taSkgeworICAgICAgICBpZiAoKGktPnN0YXR1cygpID09IFJHQkEzMkJ1
ZmZlcjo6RnJhbWVDb21wbGV0ZSkgJiYgKGkgIT0gZW5kKSkKKyAgICAgICAgICAgIGktPmNsZWFy
KCk7CisgICAgfQorCisgICAgLy8gTm93IHxpfCBob2xkcyB0aGUgbGFzdCBmcmFtZSB3ZSBuZWVk
IHRvIHByZXNlcnZlOyBjbGVhciBwcmlvciBmcmFtZXMuCisgICAgZm9yIChWZWN0b3I8UkdCQTMy
QnVmZmVyPjo6aXRlcmF0b3IgaihtX2ZyYW1lQnVmZmVyQ2FjaGUuYmVnaW4oKSk7IGogIT0gaTsg
KytqKSB7CisgICAgICAgIEFTU0VSVChqLT5zdGF0dXMoKSAhPSBSR0JBMzJCdWZmZXI6OkZyYW1l
UGFydGlhbCk7CisgICAgICAgIGlmIChqLT5zdGF0dXMoKSAhPSBSR0JBMzJCdWZmZXI6OkZyYW1l
RW1wdHkpCisgICAgICAgICAgICBqLT5jbGVhcigpOwogICAgIH0KIH0KIApAQCAtMjc4LDcgKzI5
NCw2IEBAIGJvb2wgR0lGSW1hZ2VEZWNvZGVyOjppbml0RnJhbWVCdWZmZXIodW4KICAgICAgICAg
Ly8gZmlyc3QgZnJhbWUgc3BlY2lmaWVzIHRoaXMgbWV0aG9kLCBpdCB3aWxsIGdldCB0cmVhdGVk
IGxpa2UKICAgICAgICAgLy8gRGlzcG9zZU92ZXJ3cml0ZUJnY29sb3IgYmVsb3cgYW5kIHJlc2V0
IHRvIGEgY29tcGxldGVseSBlbXB0eSBpbWFnZS4pCiAgICAgICAgIGNvbnN0IFJHQkEzMkJ1ZmZl
ciogcHJldkJ1ZmZlciA9ICZtX2ZyYW1lQnVmZmVyQ2FjaGVbLS1mcmFtZUluZGV4XTsKLSAgICAg
ICAgQVNTRVJUKHByZXZCdWZmZXItPnN0YXR1cygpID09IFJHQkEzMkJ1ZmZlcjo6RnJhbWVDb21w
bGV0ZSk7CiAgICAgICAgIFJHQkEzMkJ1ZmZlcjo6RnJhbWVEaXNwb3NhbE1ldGhvZCBwcmV2TWV0
aG9kID0KICAgICAgICAgICAgIHByZXZCdWZmZXItPmRpc3Bvc2FsTWV0aG9kKCk7CiAgICAgICAg
IHdoaWxlICgoZnJhbWVJbmRleCA+IDApCkBAIC0yODYsNiArMzAxLDcgQEAgYm9vbCBHSUZJbWFn
ZURlY29kZXI6OmluaXRGcmFtZUJ1ZmZlcih1bgogICAgICAgICAgICAgcHJldkJ1ZmZlciA9ICZt
X2ZyYW1lQnVmZmVyQ2FjaGVbLS1mcmFtZUluZGV4XTsKICAgICAgICAgICAgIHByZXZNZXRob2Qg
PSBwcmV2QnVmZmVyLT5kaXNwb3NhbE1ldGhvZCgpOwogICAgICAgICB9CisgICAgICAgIEFTU0VS
VChwcmV2QnVmZmVyLT5zdGF0dXMoKSA9PSBSR0JBMzJCdWZmZXI6OkZyYW1lQ29tcGxldGUpOwog
CiAgICAgICAgIGlmICgocHJldk1ldGhvZCA9PSBSR0JBMzJCdWZmZXI6OkRpc3Bvc2VOb3RTcGVj
aWZpZWQpIHx8CiAgICAgICAgICAgICAgICAgKHByZXZNZXRob2QgPT0gUkdCQTMyQnVmZmVyOjpE
aXNwb3NlS2VlcCkpIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvc2tp
YS9JbWFnZURlY29kZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL3NraWEvSW1hZ2VEZWNvZGVyLmgJKHJldmlzaW9uIDQwNjI3KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9za2lhL0ltYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjksMTAgKzEyOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
Y2xlYXIoKQogICAgICAgICB7CiAgICAgICAgICAgICBtX2JpdG1hcFJlZiA9IFJlZkNvdW50ZWRO
YXRpdmVJbWFnZVNraWE6OmNyZWF0ZSgpOwotICAgICAgICAgICAgbV9yZWN0ID0gSW50UmVjdCgp
OwogICAgICAgICAgICAgbV9zdGF0dXMgPSBGcmFtZUVtcHR5OwotICAgICAgICAgICAgbV9kdXJh
dGlvbiA9IDA7Ci0gICAgICAgICAgICBtX2Rpc3Bvc2FsTWV0aG9kID0gRGlzcG9zZU5vdFNwZWNp
ZmllZDsKKyAgICAgICAgICAgIC8vIE5PVEU6IERvIG5vdCByZXNldCBvdGhlciBtZW1iZXJzIGhl
cmU7IGNsZWFyRnJhbWVCdWZmZXJDYWNoZSgpCisgICAgICAgICAgICAvLyBjYWxscyB0aGlzIHRv
IGZyZWUgdGhlIGJpdG1hcCBkYXRhLCBidXQgb3RoZXIgZnVuY3Rpb25zIGxpa2UKKyAgICAgICAg
ICAgIC8vIGluaXRGcmFtZUJ1ZmZlcigpIGFuZCBmcmFtZUNvbXBsZXRlKCkgbWF5IHN0aWxsIG5l
ZWQgdG8gcmVhZAorICAgICAgICAgICAgLy8gb3RoZXIgbWV0YWRhdGEgb3V0IG9mIHRoaXMgZnJh
bWUgbGF0ZXIuCiAgICAgICAgIH0KIAogICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMg
YSBuZXcgY29weSBvZiB0aGUgaW1hZ2UgZGF0YSBpbiB8b3RoZXJ8LCBzbyB0aGUK
</data>
<flag name="review"
          id="13188"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>