<?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>48634</bug_id>
          
          <creation_ts>2010-10-29 07:14:16 -0700</creation_ts>
          <short_desc>fast/images/size-failure.html results in malloc of 2 Gb after switching to WebKit image decoders</short_desc>
          <delta_ts>2010-11-16 11:24:46 -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>Mac</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="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>mihaip</cc>
    
    <cc>pkasting</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301740</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2010-10-29 07:14:16 -0700</bug_when>
    <thetext>I tried rebaselining tests, and found the discrepancy (see the screenshot). This appeared on Mac after you had fixed Chromium build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301742</commentid>
    <comment_count>1</comment_count>
      <attachid>72331</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2010-10-29 07:14:58 -0700</bug_when>
    <thetext>Created attachment 72331
screenshot from rebaseline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301751</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-29 07:29:35 -0700</bug_when>
    <thetext>It&apos;s the same issue I&apos;ve seen the first time I rolled out the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301767</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2010-10-29 08:14:39 -0700</bug_when>
    <thetext>Looks like these 4 WebGL tests that check color values were also affected by this change. At least, they started failing right after compilation was fixed, and only on Mac.

  fast/canvas/webgl/gl-teximage.html = TEXT
  fast/canvas/webgl/tex-image-and-sub-image-2d-with-image.html = TEXT
  fast/canvas/webgl/tex-image-with-format-and-type.html = TEXT
  fast/canvas/webgl/texture-transparent-pixels-initialized.html = TEXT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301937</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-29 12:11:52 -0700</bug_when>
    <thetext>I&apos;ll investigate some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301971</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-29 12:34:17 -0700</bug_when>
    <thetext>A number of these tests don&apos;t use images at all.  Did you actually observe these tests fail, or just that they were flaky?

Also notice that the shadow seems to correspond to where the scroll bars aren&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302024</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2010-10-29 13:57:09 -0700</bug_when>
    <thetext>Three reasons I attributed those failures to your change:
 - tests were passing before compilation on mac broke, and started failing after you fixed it;
 - they fail only on mac;
 - I was needed to make a roll having ~100 tests failing, so I had to do something with them.

If I can somehow help you resolving this problem, please tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302032</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-29 14:04:22 -0700</bug_when>
    <thetext>&gt; Three reasons I attributed those failures to your change:

Oh, I definitely think its related.  I&apos;m trying to reproduce locally.

&gt; If I can somehow help you resolving this problem, please tell.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307625</commentid>
    <comment_count>8</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-10 16:32:21 -0800</bug_when>
    <thetext>Strangely, this seems to happen with even with tests that have scrollbars, but only in release mode:

http://build.chromium.org/f/chromium/layout_test_results/Webkit_Mac10_5/results/layout-test-results/fast/lists/001-vertical-actual.png (release build)
http://build.chromium.org/f/chromium/layout_test_results/Webkit_Mac10_5__dbg__2_/results/layout-test-results/fast/lists/001-vertical-actual.png (debug build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307715</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-10 21:16:30 -0800</bug_when>
    <thetext>Ah, I was testing in Debug.  I&apos;ll try again in Release.  Maybe initialized memory that inited to zero in Debug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308309</commentid>
    <comment_count>10</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-11 18:01:23 -0800</bug_when>
    <thetext>James has a Leopard laptop, I built test_shell on it in Release mode and was able to reproduce by running it:

./webkit/tools/layout_tests/run_webkit_tests.sh --verbose --release fast/images/size-failure.html fast/images/svg-width-100p-as-background.html

fast/images/size-failure.html  claims to pass, but has this output:

2010-11-11 17:21:49,387 dump_render_tree_thread.py:432  DEBUG Thread-1 fast/images/size-failure.html passed
2010-11-11 17:21:49,504 dump_render_tree_thread.py:118  DEBUG Previous test output stderr lines:
TestShell(54495,0xa0177720) malloc: *** mmap(size=2147483648) failed (error code=12)
*** error: can&apos;t allocate region
*** set a breakpoint in malloc_error_break to debug
2010-11-11 17:21:49.375 TestShell[54495:10b] Attempt to allocate -2147483648 bytes for NS/CFData failed

fast/images/svg-width-100p-as-background.html then fails with this output:

expected: http://trac.webkit.org/export/71871/trunk/LayoutTests/platform/mac/fast/images/svg-width-100p-as-background-expected.png
actual: http://build.chromium.org/f/chromium/layout_test_results/webkit-rel-mac-webkit-org/results/layout-test-results/fast/images/svg-width-100p-as-background-actual.png
diff: http://build.chromium.org/f/chromium/layout_test_results/webkit-rel-mac-webkit-org/results/layout-test-results/fast/images/svg-width-100p-as-background-diff.png

After that (and I&apos;m guessing till the DRT gets restarted), scrollbar rendering is screwed up. I assume we shouldn&apos;t be trying to malloc that many bytes in the first place, and the failure leaves everything in a screwed up state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308346</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-11 20:19:47 -0800</bug_when>
    <thetext>Can we get a backtrace of the failed allocation?  It would be interesting to see purported width and height of image we&apos;re trying to allocate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308348</commentid>
    <comment_count>12</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-11 20:32:36 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Can we get a backtrace of the failed allocation?  It would be interesting to see purported width and height of image we&apos;re trying to allocate.

As it turns out, the malloc failure happens on Snow Leopard with test_shell, so this is easier to reproduce:


#0  0x976ead12 in malloc_error_break ()
#1  0x976ebeb8 in szone_error ()
#2  0x975f6ec0 in allocate_pages ()
#3  0x976077b2 in large_malloc ()
#4  0x975f8f90 in szone_malloc_should_clear ()
#5  0x975fa08b in malloc_zone_calloc ()
#6  0x9974fe48 in __CFDataAllocate ()
#7  0x997523f5 in __CFDataGrow ()
#8  0x99796c29 in CFDataSetLength ()
#9  0x010515b8 in WebCore::RGBA32Buffer::setSize (this=0x6824600, newWidth=14489, newHeight=34615) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/cg/ImageDecoderCG.cpp:64
#10 0x01051be2 in WebCore::GIFImageDecoder::initFrameBuffer (this=0x5e17c30, frameIndex=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageDecoder.cpp:343
#11 0x01052593 in WebCore::GIFImageDecoder::haveDecodedRow (this=0x5e17c30, frameIndex=0, rowBuffer=0x681a600 &quot;\313\314\313\314\320\314\314\314\332\314\314\314\314\314\314\314\314#\314\314\314##\351#\321\324\b\b\325\b\325\325\3308\3308\3308\330l88l&quot;, rowEnd=0x681a699 &quot;&quot;, rowNumber=0, repeatCount=1, writeTransparentPixels=false) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageDecoder.cpp:223
#12 0x01053aff in GIFImageReader::output_row (this=0x5e20930) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageReader.cpp:161
#13 0x010540a0 in GIFImageReader::do_lzw (this=0x5e20930, q=0x6841b21 &quot;&quot;) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageReader.cpp:356
#14 0x01054396 in GIFImageReader::read (this=0x5e20930, buf=0x6841c20 &quot;\377V\275\235v^\2335\367\&quot;\320\255\363\341\303\351a\a\023&gt;\234t\370\323\342\215{\215O\316u9\346\257\316A\a\235t\264\035dPg\026a\207\035i\v\266\365\253\203\342}w\027m\tRd\323\205\236\261\027\3155\351/\243\020BB\t5\224Q\210\325\307\324}\214Q\265\037\177\375Q6\220\210!\372\246\315`\003%5\320\215c\351d\221^\025\365h\351i\032\241\024$J\336M(\223\205z]\230\336z\032\246\343\244O\004\306&apos;\242a$\036\325\214}\3675\346\330\212,b\265\234? .\363\314P1\n\365\&quot;\2158\342h\226g&lt;\266\351#m8T\223\321Ek\305V\333D\350\211ySn\032r\332\016Y1\212)fpI&quot;..., len=33476, query=WebCore::GIFImageDecoder::GIFFullQuery, haltAtFrame=1) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageReader.cpp:446
#15 0x0105202d in WebCore::GIFImageDecoder::decode (this=0x5e17c30, haltAtFrame=1, query=WebCore::GIFImageDecoder::GIFFullQuery) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageDecoder.cpp:318
#16 0x010520e7 in WebCore::GIFImageDecoder::frameBufferAtIndex (this=0x5e17c30, index=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/image-decoders/gif/GIFImageDecoder.cpp:127
#17 0x0103f13e in WebCore::ImageSource::createFrameAtIndex (this=0x5e17924, index=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/ImageSource.cpp:132
#18 0x00fe4183 in WebCore::BitmapImage::cacheFrame (this=0x5e17910, index=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/BitmapImage.cpp:121
#19 0x00fe4960 in WebCore::BitmapImage::frameAtIndex (this=0x5e17910, index=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/BitmapImage.cpp:213
#20 0x00f921f6 in WebCore::BitmapImage::draw (this=0x5e17910, ctxt=0xbfffbf48, destRect=@0xbfffad1c, srcRect=@0xbfffad0c, styleColorSpace=WebCore::ColorSpaceDeviceRGB, compositeOp=WebCore::CompositeSourceOver) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/cg/ImageCG.cpp:162
#21 0x01001231 in WebCore::GraphicsContext::drawImage (this=0xbfffbf48, image=0x5e17910, styleColorSpace=WebCore::ColorSpaceDeviceRGB, dest=@0xbfffadf0, src=@0xbfffade0, op=WebCore::CompositeSourceOver, useLowQualityScale=false) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/GraphicsContext.cpp:413
#22 0x010012a3 in WebCore::GraphicsContext::drawImage (this=0xbfffbf48, image=0x5e17910, styleColorSpace=WebCore::ColorSpaceDeviceRGB, dest=@0xbfffaf24, srcRect=@0xbfffae40, op=WebCore::CompositeSourceOver, useLowQualityScale=false) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/GraphicsContext.cpp:329
#23 0x010013e2 in WebCore::GraphicsContext::drawImage (this=0xbfffbf48, image=0x5e17910, styleColorSpace=WebCore::ColorSpaceDeviceRGB, r=@0xbfffaf24, op=WebCore::CompositeSourceOver, useLowQualityScale=false) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/graphics/GraphicsContext.cpp:319
#24 0x015c6e38 in WebCore::RenderImage::paintIntoRect (this=0x5e1c78c, context=0xbfffbf48, rect=@0xbfffaf24) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderImage.cpp:355
#25 0x015c787f in WebCore::RenderImage::paintReplaced (this=0x5e1c78c, paintInfo=@0xbfffb0fc, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderImage.cpp:291
#26 0x01620030 in WebCore::RenderReplaced::paint (this=0x5e1c78c, paintInfo=@0xbfffb0fc, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderReplaced.cpp:146
#27 0x015c70b8 in WebCore::RenderImage::paint (this=0x5e1c78c, paintInfo=@0xbfffb0fc, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderImage.cpp:297
#28 0x01541d1d in WebCore::InlineBox::paint (this=0x5e1d62c, paintInfo=@0xbfffb164, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/InlineBox.cpp:184
#29 0x01544545 in WebCore::InlineFlowBox::paint (this=0x5e172dc, paintInfo=@0xbfffb224, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/InlineFlowBox.cpp:749
#30 0x0166cd3a in WebCore::RootInlineBox::paint (this=0x5e172dc, paintInfo=@0xbfffb224, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RootInlineBox.cpp:178
#31 0x015f3e31 in WebCore::RenderLineBoxList::paint (this=0x5e1c088, renderer=0x5e1c01c, paintInfo=@0xbfffb420, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderLineBoxList.cpp:256
#32 0x015690a3 in WebCore::RenderBlock::paintContents (this=0x5e1c01c, paintInfo=@0xbfffb420, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2224
#33 0x01569891 in WebCore::RenderBlock::paintObject (this=0x5e1c01c, paintInfo=@0xbfffb420, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2334
#34 0x01569cff in WebCore::RenderBlock::paint (this=0x5e1c01c, paintInfo=@0xbfffb420, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2115
#35 0x01568ebd in WebCore::RenderBlock::paintChildren (this=0x5e1c90c, paintInfo=@0xbfffb5b0, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2267
#36 0x015690c5 in WebCore::RenderBlock::paintContents (this=0x5e1c90c, paintInfo=@0xbfffb5b0, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2226
#37 0x01569891 in WebCore::RenderBlock::paintObject (this=0x5e1c90c, paintInfo=@0xbfffb5b0, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2334
#38 0x01569cff in WebCore::RenderBlock::paint (this=0x5e1c90c, paintInfo=@0xbfffb5b0, tx=8, ty=8) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2115
#39 0x01568ebd in WebCore::RenderBlock::paintChildren (this=0x5e1a23c, paintInfo=@0xbfffb934, tx=0, ty=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2267
#40 0x015690c5 in WebCore::RenderBlock::paintContents (this=0x5e1a23c, paintInfo=@0xbfffb934, tx=0, ty=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2226
#41 0x01569891 in WebCore::RenderBlock::paintObject (this=0x5e1a23c, paintInfo=@0xbfffb934, tx=0, ty=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2334
#42 0x01569cff in WebCore::RenderBlock::paint (this=0x5e1a23c, paintInfo=@0xbfffb934, tx=0, ty=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderBlock.cpp:2115
#43 0x015d8fe4 in WebCore::RenderLayer::paintLayer (this=0x5e1b3dc, rootLayer=0x5e0fbec, p=0xbfffbf48, paintDirtyRect=@0xbfffbea0, paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0xbfffbd48, paintFlags=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderLayer.cpp:2489
#44 0x015d9aad in WebCore::RenderLayer::paintList (this=0x5e0fbec, list=0x5c00130, rootLayer=0x5e0fbec, p=0xbfffbf48, paintDirtyRect=@0xbfffbea0, paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0xbfffbd48, paintFlags=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderLayer.cpp:2542
#45 0x015d91b7 in WebCore::RenderLayer::paintLayer (this=0x5e0fbec, rootLayer=0x5e0fbec, p=0xbfffbf48, paintDirtyRect=@0xbfffbea0, paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0xbfffbd48, paintFlags=0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderLayer.cpp:2510
#46 0x015d9b9b in WebCore::RenderLayer::paint (this=0x5e0fbec, p=0xbfffbf48, damageRect=@0xbfffbea0, paintBehavior=0, paintingRoot=0x0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../rendering/RenderLayer.cpp:2295
#47 0x014dfed5 in WebCore::FrameView::paintContents (this=0x7009c00, p=0xbfffbf48, rect=@0xbfffbea0) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../page/FrameView.cpp:2122
#48 0x01099cf5 in WebCore::ScrollView::paint (this=0x7009c00, context=0xbfffbf48, rect=@0xbfffbf08) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebCore/WebCore.gyp/../platform/ScrollView.cpp:851
#49 0x00aba103 in WebKit::WebFrameImpl::paintWithContext (this=0x5c11670, gc=@0xbfffbf48, rect=@0xbfffc16c) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebKit/chromium/src/WebFrameImpl.cpp:1891
#50 0x00aba1d4 in WebKit::WebFrameImpl::paint (this=0x5c11670, canvas=0x15815bc0, rect=@0xbfffc16c) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebKit/chromium/src/WebFrameImpl.cpp:1913
#51 0x00af5084 in WebKit::WebViewImpl::paint (this=0x5c101f0, canvas=0x15815bc0, rect=@0xbfffc16c) at /Users/mihaip/Developer/source/chromium1/src/third_party/WebKit/WebKit/chromium/src/WebViewImpl.cpp:1027
#52 0x000211d8 in WebWidgetHost::PaintRect (this=0x5c0f220, rect=@0xbfffc284) at /Users/mihaip/Developer/source/chromium1/src/webkit/tools/test_shell/mac/webwidget_host.mm:281
#53 0x00021ac7 in WebWidgetHost::Paint (this=0x5c0f220) at /Users/mihaip/Developer/source/chromium1/src/webkit/tools/test_shell/mac/webwidget_host.mm:207
#54 0x0001ed57 in -[TestShellWebView drawRect:] (self=0x5c0f280, _cmd=0x92c589e8, rect={origin = {x = 0, y = 0}, size = {width = 800, height = 600}}) at /Users/mihaip/Developer/source/chromium1/src/webkit/tools/test_shell/mac/test_shell_webview.mm:59
#55 0x92598a36 in -[NSView _drawRect:clip:] ()
#56 0x925976d4 in -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] ()
#57 0x92595bf3 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#58 0x92596b68 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#59 0x92596b68 in -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#60 0x92595767 in -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
#61 0x925920ae in -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] ()
#62 0x924f2d3f in -[NSView displayIfNeeded] ()
#63 0x924bc050 in -[NSWindow displayIfNeeded] ()
#64 0x924ed572 in _handleWindowNeedsDisplay ()
#65 0x97968968 in __NSFireTimer ()
#66 0x9976870b in __CFRunLoopRun ()
#67 0x99766094 in CFRunLoopRunSpecific ()
#68 0x99765ec1 in CFRunLoopRunInMode ()
#69 0x906d3f9c in RunCurrentEventLoopInMode ()
#70 0x906d3d51 in ReceiveNextEventCommon ()
#71 0x906d3bd6 in BlockUntilNextEventMatchingListInMode ()
#72 0x924c3a89 in _DPSNextEvent ()
#73 0x924c32ca in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#74 0x9248555b in -[NSApplication run] ()
#75 0x001a66ba in base::MessagePumpNSApplication::DoRun (this=0x8f08a00, delegate=0xbffff4d0) at /Users/mihaip/Developer/source/chromium1/src/base/message_pump_mac.mm:683
#76 0x001a6ca9 in base::MessagePumpCFRunLoopBase::Run (this=0x8f08a00, delegate=0xbffff4d0) at /Users/mihaip/Developer/source/chromium1/src/base/message_pump_mac.mm:213
#77 0x0013893b in MessageLoop::RunInternal (this=0xbffff4d0) at /Users/mihaip/Developer/source/chromium1/src/base/message_loop.cc:266
#78 0x00138955 in MessageLoop::RunHandler (this=0xbffff4d0) at /Users/mihaip/Developer/source/chromium1/src/base/message_loop.cc:238
#79 0x001389b9 in MessageLoop::Run (this=0xbffff4d0) at /Users/mihaip/Developer/source/chromium1/src/base/message_loop.cc:216
#80 0x0001d3f1 in main (argc=1, argv=0xbffff684) at /Users/mihaip/Developer/source/chromium1/src/webkit/tools/test_shell/test_shell_main.cc:442

In theory, based on http://trac.webkit.org/changeset/52833 and http://trac.webkit.org/changeset/52102 we should be rejecting invalid sizes and malloc failures, but I&apos;m not seeing that here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308356</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-11 20:59:55 -0800</bug_when>
    <thetext>Hum...  Yeah.  Thanks for investigating this bug.  I should be able to drive this to completion from here.  (Of course, you&apos;re welcome to continue working on it if you&apos;re finding it interesting.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308734</commentid>
    <comment_count>14</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-12 13:29:14 -0800</bug_when>
    <thetext>Retitling bug for clarity, adding Peter since he might have ideas about where the image decoders go wrong. Peter: see comment 10 and onward for background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308738</commentid>
    <comment_count>15</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-11-12 13:32:40 -0800</bug_when>
    <thetext>For reference, see the difference between RGBA32Buffer::setSize() implementations on Skia (where it checks m_bitmap.allocPixels() and returns false if it fails) versus in the &quot;base&quot; class (where there&apos;s a comment saying &quot;this has no way to check for allocation failure...&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308742</commentid>
    <comment_count>16</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-12 13:36:04 -0800</bug_when>
    <thetext>Do we ever impose a maximum image size (i.e. should we be trying to display a 14489x34615 image in the first place)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308750</commentid>
    <comment_count>17</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-11-12 13:41:59 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Do we ever impose a maximum image size (i.e. should we be trying to display a 14489x34615 image in the first place)?

Yes, see ImageDecoder::isOverSize().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308930</commentid>
    <comment_count>18</comment_count>
      <attachid>73810</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-12 22:37:45 -0800</bug_when>
    <thetext>Created attachment 73810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308935</commentid>
    <comment_count>19</comment_count>
      <attachid>73810</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-12 23:14:01 -0800</bug_when>
    <thetext>Comment on attachment 73810
Patch

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

&gt; WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp:63
&gt; +    int backingStoreSize = newWidth * newHeight * sizeof(PixelData);

Is &quot;int&quot; the right type here?  I would have expected size_t.  Do we need to check for overflow?

&gt; WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp:67
&gt; +    if (!backingStoreRef)
&gt; +        return false;
&gt; +    m_backingStore.adoptCF(backingStoreRef);

Are these the right failure semantics?  I guess setSize is called exactly once.  Maybe we should ASSERT something about the state of m_backingStore at the top of the function (e.g., that it&apos;s NULL).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309000</commentid>
    <comment_count>20</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-11-13 12:00:55 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 73810 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73810&amp;action=review
&gt; 
&gt; &gt; WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp:63
&gt; &gt; +    int backingStoreSize = newWidth * newHeight * sizeof(PixelData);
&gt; 
&gt; Is &quot;int&quot; the right type here?  I would have expected size_t.  Do we need to check for overflow?

Adam is correct that this should be a size_t.  As for checking for overflow, I forget off the top of my head whether it&apos;s possible to get arbitrary dimensions here without tripping the master isOverSize() check.

&gt; &gt; WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp:67
&gt; &gt; +    if (!backingStoreRef)
&gt; &gt; +        return false;
&gt; &gt; +    m_backingStore.adoptCF(backingStoreRef);
&gt; 
&gt; Are these the right failure semantics?  I guess setSize is called exactly once.  Maybe we should ASSERT something about the state of m_backingStore at the top of the function (e.g., that it&apos;s NULL).

These are the right failure semantics.  ASSERT()ing would be fine to add or leave off as desired -- the other platforms don&apos;t bother to ASSERT this and we have sufficient checks to prevent it in the callers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309111</commentid>
    <comment_count>21</comment_count>
      <attachid>73859</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-14 15:27:09 -0800</bug_when>
    <thetext>Created attachment 73859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309112</commentid>
    <comment_count>22</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-14 15:30:06 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; Is &quot;int&quot; the right type here?  I would have expected size_t.  Do we need to check for overflow?
&gt; 
&gt; Adam is correct that this should be a size_t.  As for checking for overflow, I forget off the top of my head whether it&apos;s possible to get arbitrary dimensions here without tripping the master isOverSize() check.

Changed to size_t; I&apos;m quite sure we only get here if we pass the isOverSize check.

&gt; &gt; &gt; WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp:67
&gt; &gt; &gt; +    if (!backingStoreRef)
&gt; &gt; &gt; +        return false;
&gt; &gt; &gt; +    m_backingStore.adoptCF(backingStoreRef);
&gt; &gt; 
&gt; &gt; Are these the right failure semantics?  I guess setSize is called exactly once.  Maybe we should ASSERT something about the state of m_backingStore at the top of the function (e.g., that it&apos;s NULL).
&gt; 
&gt; These are the right failure semantics.  ASSERT()ing would be fine to add or leave off as desired -- the other platforms don&apos;t bother to ASSERT this and we have sufficient checks to prevent it in the callers.

Added the ASSERT, just to be safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309545</commentid>
    <comment_count>23</comment_count>
      <attachid>73859</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-15 18:46:32 -0800</bug_when>
    <thetext>Comment on attachment 73859
Patch

Rejecting patch 73859 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, 73859]&quot; exit_code: 2
Last 500 characters of output:
ayoutTests/platform/chromium/test_expectations.txt
Hunk #1 succeeded at 3140 (offset -3 lines).
Hunk #2 FAILED at 3204.
1 out of 2 hunks FAILED -- saving rejects to file LayoutTests/platform/chromium/test_expectations.txt.rej
patching file WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp

Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/6089003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309551</commentid>
    <comment_count>24</comment_count>
      <attachid>73953</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-15 19:44:31 -0800</bug_when>
    <thetext>Created attachment 73953
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309626</commentid>
    <comment_count>25</comment_count>
      <attachid>73953</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 00:44:32 -0800</bug_when>
    <thetext>Comment on attachment 73953
Patch for landing

Clearing flags on attachment: 73953

Committed r72066: &lt;http://trac.webkit.org/changeset/72066&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309627</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 00:44:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309784</commentid>
    <comment_count>27</comment_count>
      <attachid>73859</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-16 09:55:32 -0800</bug_when>
    <thetext>Comment on attachment 73859
Patch

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

&gt; WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp:64
&gt; +    size_t backingStoreSize = newWidth * newHeight * sizeof(PixelData);

This code needs a check for overflow. Doing multiplication like this without a check for overflow can lead to security problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309789</commentid>
    <comment_count>28</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-16 10:01:06 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; This code needs a check for overflow. Doing multiplication like this without a check for overflow can lead to security problems.

ImageDecoder::isOveSize will reject image sizes that can lead to overflow issues, so we would never get here in that case. Still want me to add a check, just to be safe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309844</commentid>
    <comment_count>29</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-11-16 11:24:46 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
&gt; &gt; This code needs a check for overflow. Doing multiplication like this without a check for overflow can lead to security problems.
&gt; 
&gt; ImageDecoder::isOveSize will reject image sizes that can lead to overflow issues, so we would never get here in that case.

In fact, that&apos;s its explicit purpose in life.  It is there to be an overflow check for all future &quot;w * h * bpp&quot; calculations because not all of them are explicitly under our control.  (For example, Skia does calculations like this internally in some cases.)

I would prefer not to have code that implies that overflow should be possible here.  A comment about isOverSize() checking this would be fine.  If you&apos;re nervous, you can couple it with an ASSERT().  An actual conditional that returns if there&apos;s overflow would be misleading, though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>72331</attachid>
            <date>2010-10-29 07:14:58 -0700</date>
            <delta_ts>2010-10-29 07:14:58 -0700</delta_ts>
            <desc>screenshot from rebaseline</desc>
            <filename>Screen shot 2010-10-29 at 6.11.30 PM.png</filename>
            <type>image/png</type>
            <size>30632</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAzIAAAD4CAIAAAC4zEQ1AAAKd2lDQ1BJQ0MgUHJvZmlsZQAAeAHV
lndUE9kXx99MeqMkEDqE3nsLIL2GIkgHUQkJJZQYQlGxobK4AiuKiAhYQBcpCq5KkUVFRBFlEWxY
0AVZBNR1sYAFlZ3AgfX8zm//+/3zu3Pem8/ce+fOm7nzzvkCQO5gCwTJsAQAKfx0YaCnCyM8IpKB
ewQIQBw5DIEEm5MmcA4I8AX/ajP3ASQK3jEU1frXtP8ekOTGpnEAgAKQcAw3jZOC8DmEP3MEwnQA
4NMI969LFyCMykZYSogsEOFiEccvcI2IYxa4fT4nONAVyekHAE9ms4XxAJCGED8jkxOP1CF9QdiE
z+XxASAbIOzASWBzERat3SAlZa2ISxHWifmuTvx3zGbHLNVks+OXeOFdkDuRB7vx0gTJ7A3zF//L
KSU5A/le80ZFZjI/ebmoNyKe4LLdfBZZkDzfs3l/LD8kaNHPj1nuv8hxQo/ARRaku3zHAcGL/qwE
1+WLHJvmvlQnke0t6tl8fWFGYMgip2UGuS9yVkJw2CJzY92W/HE8D9ain5fOWnpW0lqfpTUALxAA
GMAXmc2BCbAClgCkx65H+geA61rBBiEvPiGd4Yz8cbEGDBafY2TAMDMxNRGF/29MtNcWFvvuwfwe
guj4f3yHkP/KdwbZA+3/+Cx3AXDUGQC5W//41J8jbegBoLmSkyHMXKiHFp0wgIjsYSkgB5SBOtBB
drMZ8h3tgBNwB97AHwSDCLAacEACSAFCsA5sAttALsgHe8B+UAaOgGOgBpwCZ0ALaAeXwTVwE/SD
e+AxGAZj4CWYAjNgFoIgHESBaJAcpAJpQvqQGcSEHCB3yBcKhCKgaCge4kMZ0CZoB5QPFUFlUCVU
C/0CnYcuQz3QAPQQGoEmobfQZxgFk2EpWAnWgo1hJuwM+8DB8Co4Hk6Fs+AceDdcClfBJ+Fm+DJ8
E74HD8Mv4WkUQJFQdJQqyhDFRLmi/FGRqDiUELUFlYcqQVWhGlBtqG7UHdQw6hXqExqLpqEZaEO0
HdoLHYLmoFPRW9AF6DJ0DboZ3YW+gx5BT6G/YSgYRYw+xhbDwoRj4jHrMLmYEkw1pglzFXMPM4aZ
wWKxdKw21hrrhY3AJmI3Yguwh7CN2A7sAHYUO43D4eRw+jh7nD+OjUvH5eIO4k7iLuFu48ZwH/Ek
vAreDO+Bj8Tz8dvxJfg6/EX8bfw4fpYgQdAk2BL8CVzCBkIh4TihjXCLMEaYJUoStYn2xGBiInEb
sZTYQLxKHCK+I5FIaiQb0goSj5RNKiWdJl0njZA+kalkPbIrOYqcQd5NPkHuID8kv6NQKFoUJ0ok
JZ2ym1JLuUJ5SvkoRhMzEmOJccW2ipWLNYvdFnstThDXFHcWXy2eJV4iflb8lvgrCYKEloSrBFti
i0S5xHmJQYlpSZqkqaS/ZIpkgWSdZI/kBBVH1aK6U7nUHOox6hXqKA1FU6e50ji0HbTjtKu0MSms
lLYUSypRKl/qlFSf1JQ0VdpCOlR6vXS59AXpYTqKrkVn0ZPphfQz9Pv0zzJKMs4ysTK7ZBpkbst8
kFWQdZKNlc2TbZS9J/tZjiHnLpckt1euRe6JPFpeT36F/Dr5w/JX5V8pSCnYKXAU8hTOKDxShBX1
FAMVNyoeU+xVnFZSVvJUEigdVLqi9EqZruyknKhcrHxReVKFpuKgwlMpVrmk8oIhzXBmJDNKGV2M
KVVFVS/VDNVK1T7VWTVttRC17WqNak/UiepM9Tj1YvVO9SkNFQ0/jU0a9RqPNAmaTM0EzQOa3Zof
tLS1wrR2arVoTWjLarO0s7TrtYd0KDqOOqk6VTp3dbG6TN0k3UO6/XqwnqVegl653i19WN9Kn6d/
SH/AAGNgY8A3qDIYNCQbOhtmGtYbjhjRjXyNthu1GL021jCONN5r3G38zcTSJNnkuMljU6qpt+l2
0zbTt2Z6ZhyzcrO75hRzD/Ot5q3mbyz0LWItDls8sKRZ+lnutOy0/GplbSW0arCatNawjrausB5k
SjEDmAXM6zYYGxebrTbtNp9srWzTbc/Y/mVnaJdkV2c3sUx7Weyy48tG7dXs2faV9sMODIdoh6MO
w46qjmzHKsdnTupOXKdqp3FnXedE55POr11MXIQuTS4fXG1dN7t2uKHcPN3y3Prcqe4h7mXuTz3U
POI96j2mPC09N3p2eGG8fLz2eg2ylFgcVi1rytvae7N3lw/ZJ8inzOeZr56v0LfND/bz9tvnN7Rc
czl/eYs/8Gf57/N/EqAdkBrw6wrsioAV5SueB5oGbgrsDqIFrQmqC5oJdgkuDH4cohOSEdIZKh4a
FVob+iHMLawobDjcOHxz+M0I+QheRGskLjI0sjpyeqX7yv0rx6Iso3Kj7q/SXrV+Vc9q+dXJqy+s
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
CgIvbVU2MHnsCnwAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73810</attachid>
            <date>2010-11-12 22:37:45 -0800</date>
            <delta_ts>2010-11-14 15:27:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48634-20101112223743.patch</filename>
            <type>text/plain</type>
            <size>3463</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YjdlYWRjNzdiZmJmODI2MjkwMGYwODk0OWZkNDhlZjJhYTMwM2E3Li44NzI0YTli
YTVlNDRiMDg4ZjA0NWU4OWZjYTNiOGYyZDlhZDgyMmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTEtMTIgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZmFzdC9pbWFnZXMv
c2l6ZS1mYWlsdXJlLmh0bWwgcmVzdWx0cyBpbiBtYWxsb2Mgb2YgMiBHYiBhZnRlciBzd2l0Y2hp
bmcgdG8gV2ViS2l0IGltYWdlIGRlY29kZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODYzNAorICAgICAgICAKKyAgICAgICAgUmUtZW5hYmxlIGZh
c3QvaW1hZ2VzL3NpemUtZmFpbHVyZS5odG1sIG5vdyB0aGF0IGl0IHBhc3NlcyBhbmQgZG9lc24n
dAorICAgICAgICBhZmZlY3Qgc3Vic2VxdWVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMC0xMS0xMiAgVG9ueSBDaGFu
ZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCBjaGFu
Z2VzIHRvIHNjcmlwdC1vYmplY3QtaW52b2tlIHRoYXQgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwNjg3Yjdh
MzgzNWQ5NDYwMjI2MzNmMTZiYjk3OTA0YjUxNjcwMTIyLi5kMTI1NDU2OTgxYjcwZWZjNjMwNGFl
MjU0Y2FlNTUxMDE1YzgwZmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zMjEwLDggKzMyMTAsNCBAQCBCVUdXSzQ5
NDEzIDogZmFzdC90YWJsZS9jb2xzcGFuTWluV2lkdGgtdmVydGljYWwuaHRtbCA9IFRFWFQKIAog
QlVHNjE3MzkgTUFDIFdJTiBERUJVRyBTTE9XIDogYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1h
bmltYXRpb24tZXZlbnRzLmh0bWwgPSBDUkFTSCBQQVNTCiAKLS8vIE1hbGZvcm1lZCBpbWFnZSBy
ZXN1bHRzIGluIGh1bW9uZ291cyBtYWxsb2M7IGlmIHRoaXMgdGVzdCBpcyBydW4gaXQgd2lsbCAK
LS8vIGFmZmVjdCBvbmVzIHRoYXQgZm9sbG93IGl0LgotQlVHV0s0ODYzNCBNQUMgU0tJUCA6IGZh
c3QvaW1hZ2VzL3NpemUtZmFpbHVyZS5odG1sID0gQ1JBU0gKLQogQlVHV0s0OTQ3NyBXSU4gTElO
VVggOiBmYXN0L2NhbnZhcy9jYW52YXMtYXJjLTM2MC13aW5kaW5nLmh0bWwgPSBURVhUCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUxMTQz
YmU2ZDRiNTYwNmQ4NjNmYWIxZjc5NDk0NjJhODk2NjQ1OWIuLjU2NDlmYzFkYzc0OGI5ZWJjZjFm
ZWY3MjhjNDZhNzBhZWFkN2VmODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTEtMTIgIE1paGFpIFBh
cnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgZmFzdC9pbWFnZXMvc2l6ZS1mYWlsdXJlLmh0bWwgcmVz
dWx0cyBpbiBtYWxsb2Mgb2YgMiBHYiBhZnRlciBzd2l0Y2hpbmcgdG8gV2ViS2l0IGltYWdlIGRl
Y29kZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
ODYzNAorICAgICAgICAKKyAgICAgICAgU3BlY2lmeSB0aGUgY2FwYWNpdHkgd2hlbiBjYWxsaW5n
IENGRGF0YUNyZWF0ZU11dGFibGUsIHdoaWNoIGNhbiBzaWduYWwKKyAgICAgICAgbWFsbG9jIGZh
aWx1cmVzIChieSByZXR1cm5pbmcgTlVMTCksIHVubGlrZSBDRkRhdGFTZXRMZW5ndGguCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jZy9JbWFnZURlY29kZXJDRy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6OnNldFNpemUpOgorCiAyMDEwLTExLTEyICBK
b3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9jZy9JbWFnZURlY29kZXJDRy5jcHAKaW5kZXggMGY0ZGJjODQyNGZkMjY5Yjc4
NDVhNTZkMmQ4ZjliOGUzZTkwNGRjOS4uNTUxZmI0NzQ0NDQxM2U5ZDhhYjFkYWE2Mjg1MjMwYmQw
YWI3YTIyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jZy9J
bWFnZURlY29kZXJDRy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9j
Zy9JbWFnZURlY29kZXJDRy5jcHAKQEAgLTYwLDggKzYwLDEyIEBAIGJvb2wgUkdCQTMyQnVmZmVy
Ojpjb3B5Qml0bWFwRGF0YShjb25zdCBSR0JBMzJCdWZmZXImIG90aGVyKQogCiBib29sIFJHQkEz
MkJ1ZmZlcjo6c2V0U2l6ZShpbnQgbmV3V2lkdGgsIGludCBuZXdIZWlnaHQpCiB7Ci0gICAgbV9i
YWNraW5nU3RvcmUuYWRvcHRDRihDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIDApKTsKLSAgICBDRkRhdGFTZXRMZW5ndGgobV9iYWNraW5nU3RvcmUuZ2V0KCksIG5ld1dp
ZHRoICogbmV3SGVpZ2h0ICogc2l6ZW9mKFBpeGVsRGF0YSkpOworICAgIGludCBiYWNraW5nU3Rv
cmVTaXplID0gbmV3V2lkdGggKiBuZXdIZWlnaHQgKiBzaXplb2YoUGl4ZWxEYXRhKTsKKyAgICBD
Rk11dGFibGVEYXRhUmVmIGJhY2tpbmdTdG9yZVJlZiA9IENGRGF0YUNyZWF0ZU11dGFibGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgYmFja2luZ1N0b3JlU2l6ZSk7CisgICAgaWYgKCFiYWNraW5nU3Rv
cmVSZWYpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2JhY2tpbmdTdG9yZS5hZG9wdENG
KGJhY2tpbmdTdG9yZVJlZik7CisgICAgQ0ZEYXRhU2V0TGVuZ3RoKGJhY2tpbmdTdG9yZVJlZiwg
YmFja2luZ1N0b3JlU2l6ZSk7CiAgICAgbV9ieXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGl4ZWxE
YXRhKj4oQ0ZEYXRhR2V0TXV0YWJsZUJ5dGVQdHIobV9iYWNraW5nU3RvcmUuZ2V0KCkpKTsKICAg
ICBtX3NpemUgPSBJbnRTaXplKG5ld1dpZHRoLCBuZXdIZWlnaHQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73859</attachid>
            <date>2010-11-14 15:27:09 -0800</date>
            <delta_ts>2010-11-16 09:55:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48634-20101114152707.patch</filename>
            <type>text/plain</type>
            <size>4113</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YjdlYWRjNzdiZmJmODI2MjkwMGYwODk0OWZkNDhlZjJhYTMwM2E3Li44NzI0YTli
YTVlNDRiMDg4ZjA0NWU4OWZjYTNiOGYyZDlhZDgyMmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTEtMTIgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZmFzdC9pbWFnZXMv
c2l6ZS1mYWlsdXJlLmh0bWwgcmVzdWx0cyBpbiBtYWxsb2Mgb2YgMiBHYiBhZnRlciBzd2l0Y2hp
bmcgdG8gV2ViS2l0IGltYWdlIGRlY29kZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODYzNAorICAgICAgICAKKyAgICAgICAgUmUtZW5hYmxlIGZh
c3QvaW1hZ2VzL3NpemUtZmFpbHVyZS5odG1sIG5vdyB0aGF0IGl0IHBhc3NlcyBhbmQgZG9lc24n
dAorICAgICAgICBhZmZlY3Qgc3Vic2VxdWVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMC0xMS0xMiAgVG9ueSBDaGFu
ZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCBjaGFu
Z2VzIHRvIHNjcmlwdC1vYmplY3QtaW52b2tlIHRoYXQgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAwNjg3Yjdh
MzgzNWQ5NDYwMjI2MzNmMTZiYjk3OTA0YjUxNjcwMTIyLi45NDk3ZTYwMzBkYTAyMjJiMGI2YmI3
MjAyODM2ZmYzNzEyZjRmOTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zMTQzLDkgKzMxNDMsNiBAQCBCVUc2MTQw
NiBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQt
c3ZnZG9tLWJhc2VGcmVxdQogLy8gZnJvbSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC81MzA4NiAoZXhwZWN0YXRpb24gY2hhbmdlZCBpbiBhYm92ZSBXSyByb2xsLCB3YXMgSU1BR0Ur
VEVYVCkKIEJVRzMyMTUzYW5kNjE0MDYgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdUZXh0RWxlbWVudC1zdmdkb20tcm90YXRlLXByb3AuaHRtbCA9IElNQUdFCiAKLS8vIFRoaXMg
c3RhcnRlZCB0byBjcmFzaCBvbiBEZWJ1ZyBNYWMgMTAuNSBib3RzIGFmdGVyIHJlY2VudCByb2xs
cy4KLUJVRzYxNDc4IERFQlVHIE1BQyA6IGZhc3QvaW1hZ2VzL3N2Zy1hcy1iYWNrZ3JvdW5kLmh0
bWwgPSBDUkFTSAotCiAvLyBGbGFreTogZmFpbHMgYWJvdXQgNSUgb2YgdGhlIHRpbWUuCiAvL0JV
RzMxMzQyIFdJTiBSRUxFQVNFIDogc2VjdXJpdHkvYmxvY2stdGVzdC1uby1wb3J0Lmh0bWwgPSBU
RVhUIFBBU1MKIC8vIE5vdyBmYWlscyBhbGwgdGhlIHRpbWUgb24gV2luIGFuZCBMaW51eCwgc2Vl
IGJ1ZyBmb3IgZGV0YWlscy4KQEAgLTMyMTAsOCArMzIwNyw0IEBAIEJVR1dLNDk0MTMgOiBmYXN0
L3RhYmxlL2NvbHNwYW5NaW5XaWR0aC12ZXJ0aWNhbC5odG1sID0gVEVYVAogCiBCVUc2MTczOSBN
QUMgV0lOIERFQlVHIFNMT1cgOiBhbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi1l
dmVudHMuaHRtbCA9IENSQVNIIFBBU1MKIAotLy8gTWFsZm9ybWVkIGltYWdlIHJlc3VsdHMgaW4g
aHVtb25nb3VzIG1hbGxvYzsgaWYgdGhpcyB0ZXN0IGlzIHJ1biBpdCB3aWxsIAotLy8gYWZmZWN0
IG9uZXMgdGhhdCBmb2xsb3cgaXQuCi1CVUdXSzQ4NjM0IE1BQyBTS0lQIDogZmFzdC9pbWFnZXMv
c2l6ZS1mYWlsdXJlLmh0bWwgPSBDUkFTSAotCiBCVUdXSzQ5NDc3IFdJTiBMSU5VWCA6IGZhc3Qv
Y2FudmFzL2NhbnZhcy1hcmMtMzYwLXdpbmRpbmcuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTExNDNiZTZkNGI1NjA2
ZDg2M2ZhYjFmNzk0OTQ2MmE4OTY2NDU5Yi4uNTY0OWZjMWRjNzQ4YjllYmNmMWZlZjcyOGM0NmE3
MGFlYWQ3ZWY4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMS0xMiAgTWloYWkgUGFycGFyaXRhICA8
bWloYWlwQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBmYXN0L2ltYWdlcy9zaXplLWZhaWx1cmUuaHRtbCByZXN1bHRzIGluIG1h
bGxvYyBvZiAyIEdiIGFmdGVyIHN3aXRjaGluZyB0byBXZWJLaXQgaW1hZ2UgZGVjb2RlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NjM0CisgICAg
ICAgIAorICAgICAgICBTcGVjaWZ5IHRoZSBjYXBhY2l0eSB3aGVuIGNhbGxpbmcgQ0ZEYXRhQ3Jl
YXRlTXV0YWJsZSwgd2hpY2ggY2FuIHNpZ25hbAorICAgICAgICBtYWxsb2MgZmFpbHVyZXMgKGJ5
IHJldHVybmluZyBOVUxMKSwgdW5saWtlIENGRGF0YVNldExlbmd0aC4KKworICAgICAgICAqIHBs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2NnL0ltYWdlRGVjb2RlckNHLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJHQkEzMkJ1ZmZlcjo6c2V0U2l6ZSk6CisKIDIwMTAtMTEtMTIgIEpvc2VwaCBQZWNv
cmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9jZy9JbWFnZURlY29kZXJDRy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2NnL0ltYWdlRGVjb2RlckNHLmNwcAppbmRleCAwZjRkYmM4NDI0ZmQyNjliNzg0NWE1NmQyZDhm
OWI4ZTNlOTA0ZGM5Li4zMmU5NGUwM2U0ZGE1OTM4MGJmOGNmMmNmNjljNTZkODc4NTUwYzM3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NnL0ltYWdlRGVjb2Rl
ckNHLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NnL0ltYWdlRGVj
b2RlckNHLmNwcApAQCAtNjAsOCArNjAsMTMgQEAgYm9vbCBSR0JBMzJCdWZmZXI6OmNvcHlCaXRt
YXBEYXRhKGNvbnN0IFJHQkEzMkJ1ZmZlciYgb3RoZXIpCiAKIGJvb2wgUkdCQTMyQnVmZmVyOjpz
ZXRTaXplKGludCBuZXdXaWR0aCwgaW50IG5ld0hlaWdodCkKIHsKLSAgICBtX2JhY2tpbmdTdG9y
ZS5hZG9wdENGKENGRGF0YUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCkpOwot
ICAgIENGRGF0YVNldExlbmd0aChtX2JhY2tpbmdTdG9yZS5nZXQoKSwgbmV3V2lkdGggKiBuZXdI
ZWlnaHQgKiBzaXplb2YoUGl4ZWxEYXRhKSk7CisgICAgQVNTRVJUKCFtX2JhY2tpbmdTdG9yZSk7
CisgICAgc2l6ZV90IGJhY2tpbmdTdG9yZVNpemUgPSBuZXdXaWR0aCAqIG5ld0hlaWdodCAqIHNp
emVvZihQaXhlbERhdGEpOworICAgIENGTXV0YWJsZURhdGFSZWYgYmFja2luZ1N0b3JlUmVmID0g
Q0ZEYXRhQ3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYWNraW5nU3RvcmVTaXpl
KTsKKyAgICBpZiAoIWJhY2tpbmdTdG9yZVJlZikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IG1fYmFja2luZ1N0b3JlLmFkb3B0Q0YoYmFja2luZ1N0b3JlUmVmKTsKKyAgICBDRkRhdGFTZXRM
ZW5ndGgoYmFja2luZ1N0b3JlUmVmLCBiYWNraW5nU3RvcmVTaXplKTsKICAgICBtX2J5dGVzID0g
cmVpbnRlcnByZXRfY2FzdDxQaXhlbERhdGEqPihDRkRhdGFHZXRNdXRhYmxlQnl0ZVB0cihtX2Jh
Y2tpbmdTdG9yZS5nZXQoKSkpOwogICAgIG1fc2l6ZSA9IEludFNpemUobmV3V2lkdGgsIG5ld0hl
aWdodCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73953</attachid>
            <date>2010-11-15 19:44:31 -0800</date>
            <delta_ts>2010-11-16 00:44:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-48634-20101115194433.patch</filename>
            <type>text/plain</type>
            <size>4197</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2Y2Q5MjdkNGVmOTJjOGExYmU0MzEwZmM4NjU3ZDA3NjhjOWQyOWY1Li45YWVjYjgx
N2FkMGU1Y2M0ZGJkYzYxNTE5NDcyODI1ZGRhMDQxM2E0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTEtMTIgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBmYXN0L2ltYWdlcy9zaXpl
LWZhaWx1cmUuaHRtbCByZXN1bHRzIGluIG1hbGxvYyBvZiAyIEdiIGFmdGVyIHN3aXRjaGluZyB0
byBXZWJLaXQgaW1hZ2UgZGVjb2RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4NjM0CisgICAgICAgIAorICAgICAgICBSZS1lbmFibGUgZmFzdC9p
bWFnZXMvc2l6ZS1mYWlsdXJlLmh0bWwgbm93IHRoYXQgaXQgcGFzc2VzIGFuZCBkb2Vzbid0Cisg
ICAgICAgIGFmZmVjdCBzdWJzZXF1ZW50IHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEwLTExLTE1ICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCB0ZXN0IGV4cGVjdGF0
aW9uIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCA4NmExNjBhZTE0MTQ2ZTgwNDE0MzZmYWFkYjdiMzllMjc1
ZmRkODA4Li43Yzk5NWQ0MjNmNTI1N2RjMTk5MTIyNzgwOTkxYTdlYTBkN2FiZTEwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CkBAIC0zMTQwLDkgKzMxNDAsNiBAQCBCVUc2MTQwNiBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQtc3ZnZG9tLWJhc2VGcmVxdQogLy8gZnJvbSBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC81MzA4NiAoZXhwZWN0YXRpb24gY2hhbmdl
ZCBpbiBhYm92ZSBXSyByb2xsLCB3YXMgSU1BR0UrVEVYVCkKIEJVRzMyMTUzYW5kNjE0MDYgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1zdmdkb20tcm90YXRl
LXByb3AuaHRtbCA9IElNQUdFCiAKLS8vIFRoaXMgc3RhcnRlZCB0byBjcmFzaCBvbiBEZWJ1ZyBN
YWMgMTAuNSBib3RzIGFmdGVyIHJlY2VudCByb2xscy4KLUJVRzYxNDc4IERFQlVHIE1BQyA6IGZh
c3QvaW1hZ2VzL3N2Zy1hcy1iYWNrZ3JvdW5kLmh0bWwgPSBDUkFTSAotCiAvLyBGbGFreTogZmFp
bHMgYWJvdXQgNSUgb2YgdGhlIHRpbWUuCiAvL0JVRzMxMzQyIFdJTiBSRUxFQVNFIDogc2VjdXJp
dHkvYmxvY2stdGVzdC1uby1wb3J0Lmh0bWwgPSBURVhUIFBBU1MKIC8vIE5vdyBmYWlscyBhbGwg
dGhlIHRpbWUgb24gV2luIGFuZCBMaW51eCwgc2VlIGJ1ZyBmb3IgZGV0YWlscy4KQEAgLTMyMDQs
MTAgKzMyMDEsNiBAQCBCVUc2MDM5MyBNQUMgOiBmYXN0L3NlbGVjdG9ycy8wMDEuaHRtbCA9IFBB
U1MgVElNRU9VVAogCiBCVUc2MTczOSBNQUMgV0lOIERFQlVHIFNMT1cgOiBhbmltYXRpb25zL3N1
c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi1ldmVudHMuaHRtbCA9IENSQVNIIFBBU1MKIAotLy8gTWFs
Zm9ybWVkIGltYWdlIHJlc3VsdHMgaW4gaHVtb25nb3VzIG1hbGxvYzsgaWYgdGhpcyB0ZXN0IGlz
IHJ1biBpdCB3aWxsIAotLy8gYWZmZWN0IG9uZXMgdGhhdCBmb2xsb3cgaXQuCi1CVUdXSzQ4NjM0
IE1BQyBTS0lQIDogZmFzdC9pbWFnZXMvc2l6ZS1mYWlsdXJlLmh0bWwgPSBDUkFTSAotCiAvLyBB
ZGRlZCBpbiBXSyByNzE5NjkKIEJVR1dLNDA4ODcgTUFDIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdMaW5lRWxlbWVudC1kb20tcmVxdWlyZWRGZWF0dXJlcy5odG1sID0gTUlTU0lORwogQlVHV0s0
MDg4NyBNQUMgOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS1yZXF1
aXJlZEZlYXR1cmVzLmh0bWwgPSBNSVNTSU5HCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ZjVkNWM3OGMwYTZjNWQxMWYxMWM0NWRmMGY1
OGNjNDA1NDVmZjIuLjAxZWY5Njk2Y2UzNjViMjhmNzQ2OGQ4MjRjZTk2MjYyYzczNTUyNGIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMTEtMTIgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBmYXN0
L2ltYWdlcy9zaXplLWZhaWx1cmUuaHRtbCByZXN1bHRzIGluIG1hbGxvYyBvZiAyIEdiIGFmdGVy
IHN3aXRjaGluZyB0byBXZWJLaXQgaW1hZ2UgZGVjb2RlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NjM0CisgICAgICAgIAorICAgICAgICBTcGVj
aWZ5IHRoZSBjYXBhY2l0eSB3aGVuIGNhbGxpbmcgQ0ZEYXRhQ3JlYXRlTXV0YWJsZSwgd2hpY2gg
Y2FuIHNpZ25hbAorICAgICAgICBtYWxsb2MgZmFpbHVyZXMgKGJ5IHJldHVybmluZyBOVUxMKSwg
dW5saWtlIENGRGF0YVNldExlbmd0aC4KKworICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL2NnL0ltYWdlRGVjb2RlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJHQkEzMkJ1ZmZl
cjo6c2V0U2l6ZSk6CisKIDIwMTAtMTEtMTUgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9jZy9JbWFnZURlY29kZXJDRy5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAppbmRleCAw
ZjRkYmM4NDI0ZmQyNjliNzg0NWE1NmQyZDhmOWI4ZTNlOTA0ZGM5Li4zMmU5NGUwM2U0ZGE1OTM4
MGJmOGNmMmNmNjljNTZkODc4NTUwYzM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL2NnL0ltYWdlRGVjb2RlckNHLmNwcApAQCAtNjAsOCArNjAsMTMgQEAg
Ym9vbCBSR0JBMzJCdWZmZXI6OmNvcHlCaXRtYXBEYXRhKGNvbnN0IFJHQkEzMkJ1ZmZlciYgb3Ro
ZXIpCiAKIGJvb2wgUkdCQTMyQnVmZmVyOjpzZXRTaXplKGludCBuZXdXaWR0aCwgaW50IG5ld0hl
aWdodCkKIHsKLSAgICBtX2JhY2tpbmdTdG9yZS5hZG9wdENGKENGRGF0YUNyZWF0ZU11dGFibGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCkpOwotICAgIENGRGF0YVNldExlbmd0aChtX2JhY2tpbmdT
dG9yZS5nZXQoKSwgbmV3V2lkdGggKiBuZXdIZWlnaHQgKiBzaXplb2YoUGl4ZWxEYXRhKSk7Cisg
ICAgQVNTRVJUKCFtX2JhY2tpbmdTdG9yZSk7CisgICAgc2l6ZV90IGJhY2tpbmdTdG9yZVNpemUg
PSBuZXdXaWR0aCAqIG5ld0hlaWdodCAqIHNpemVvZihQaXhlbERhdGEpOworICAgIENGTXV0YWJs
ZURhdGFSZWYgYmFja2luZ1N0b3JlUmVmID0gQ0ZEYXRhQ3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBiYWNraW5nU3RvcmVTaXplKTsKKyAgICBpZiAoIWJhY2tpbmdTdG9yZVJlZikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fYmFja2luZ1N0b3JlLmFkb3B0Q0YoYmFja2lu
Z1N0b3JlUmVmKTsKKyAgICBDRkRhdGFTZXRMZW5ndGgoYmFja2luZ1N0b3JlUmVmLCBiYWNraW5n
U3RvcmVTaXplKTsKICAgICBtX2J5dGVzID0gcmVpbnRlcnByZXRfY2FzdDxQaXhlbERhdGEqPihD
RkRhdGFHZXRNdXRhYmxlQnl0ZVB0cihtX2JhY2tpbmdTdG9yZS5nZXQoKSkpOwogICAgIG1fc2l6
ZSA9IEludFNpemUobmV3V2lkdGgsIG5ld0hlaWdodCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>