<?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>141596</bug_id>
          
          <creation_ts>2015-02-13 21:39:54 -0800</creation_ts>
          <short_desc>FEGaussianBlur::calculateUnscaledKernelSize does unspeakable things with signed and unsigned values</short_desc>
          <delta_ts>2015-02-16 13:18:00 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069126</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-13 21:39:54 -0800</bug_when>
    <thetext>The &apos;calculateUnscaledKernelSize&apos; method improperly treats signed and unsigned values as interchangeable. This creates problems when we have extremely large stdDevication values (such as in the test case &quot;css3/filters/huge-blur-value.html&quot;). When the standard deviation supplied to the routine overflows a int value, we pass 

In this pathological case, the Std Deviation used for the blur is the float 2.14748365E+9. When this is cast as an unsigned, then assigned to a signed integer, we end up with -257759744.

The minimum of -257759744 and 500 turns out to be -257759744.

    IntSize kernelSize;

    // Limit the kernel size to 500. A bigger radius won&apos;t make a big difference for the result image but
    // inflates the absolute paint rect too much. This is compatible with Firefox&apos; behavior.
    if (stdDeviation.x()) {
        int size = std::max&lt;unsigned&gt;(2, static_cast&lt;unsigned&gt;(floorf(stdDeviation.x() * gaussianKernelFactor() + 0.5f)));
        kernelSize.setWidth(std::min(size, gMaxKernelSize));
    }

Later, this kernelSize is cast back to an unsigned, bypassing this ceiling, and subjecting other code to values far in excess of 500.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069127</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-13 21:40:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/19837103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069139</commentid>
    <comment_count>2</comment_count>
      <attachid>246582</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-13 21:54:13 -0800</bug_when>
    <thetext>Created attachment 246582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069151</commentid>
    <comment_count>3</comment_count>
      <attachid>246582</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-02-13 22:08:41 -0800</bug_when>
    <thetext>Comment on attachment 246582
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:479
&gt; +        kernelSize.setWidth(static_cast&lt;int&gt;(clampedSize));

I&apos;d rather use clampTo and not static casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069193</commentid>
    <comment_count>4</comment_count>
      <attachid>246582</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-14 09:24:07 -0800</bug_when>
    <thetext>Comment on attachment 246582
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:479
&gt;&gt; +        kernelSize.setWidth(static_cast&lt;int&gt;(clampedSize));
&gt; 
&gt; I&apos;d rather use clampTo and not static casting.

OK!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069195</commentid>
    <comment_count>5</comment_count>
      <attachid>246591</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-14 09:25:13 -0800</bug_when>
    <thetext>Created attachment 246591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069199</commentid>
    <comment_count>6</comment_count>
      <attachid>246593</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-14 09:49:52 -0800</bug_when>
    <thetext>Created attachment 246593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069253</commentid>
    <comment_count>7</comment_count>
      <attachid>246593</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-02-14 18:59:30 -0800</bug_when>
    <thetext>Comment on attachment 246593
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:469
&gt; +static int clampedKernelSize(float value)

clampedToKernelSize() might be a better name.

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:475
&gt; +    unsigned clampedSize = std::min(size, static_cast&lt;unsigned&gt;(gMaxKernelSize));
&gt; +    return clampTo&lt;int&gt;(clampedSize);

the clampedSize variable is a bit redundant, i&apos;d just go with clampTo&lt;int&gt;(std::min(size, static_cast&lt;unsigned&gt;(gMaxKernelSize)));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069449</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-02-16 09:07:16 -0800</bug_when>
    <thetext>Committed r180147: &lt;http://trac.webkit.org/changeset/180147&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069546</commentid>
    <comment_count>9</comment_count>
      <attachid>246593</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-16 13:18:00 -0800</bug_when>
    <thetext>Comment on attachment 246593
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp:473
&gt; +    unsigned size = std::max&lt;unsigned&gt;(2, static_cast&lt;unsigned&gt;(floorf(value * gaussianKernelFactor() + 0.5f)));

Why not just do this math as floats, then clamp to int directly without going via unsigned?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246582</attachid>
            <date>2015-02-13 21:54:13 -0800</date>
            <delta_ts>2015-02-14 09:25:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141596-20150213215411.patch</filename>
            <type>text/plain</type>
            <size>2593</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDEwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAyLTEzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZFR2F1c3NpYW5CbHVyOjpj
YWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUgZG9lcyB1bnNwZWFrYWJsZSB0aGluZ3Mgd2l0aCBz
aWduZWQgYW5kIHVuc2lnbmVkIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNTk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTgzNzEw
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIENvdmVyZWQgYnkgY3NzMy9maWx0ZXJzL2h1Z2UtYmx1ci12YWx1ZS5odG1sCisK
KyAgICAgICAgQXZvaWQgb3ZlcmZsb3dpbmcgdGhlIHNpZ25lZCBpbnRlZ2VyIHZhbHVlcyBieSBu
b3QgY29udmVydGluZyBmcm9tIHVuc2lnbmVkCisgICAgICAgIHVudGlsIHRoZSBtYXhpbXVtIHNp
emUgaGFzIGJlZW4gY2xhbXBlZCB0byB0aGUgZXhwZWN0ZWQgbWF4LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKToKKwogMjAx
NS0wMi0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRl
ckxpc3RJdGVtIHJlc2V0cyBpdHMgbWFya2VyJ3Mgc3R5bGUgb24gc3R5bGUgY2hhbmdlIGV2ZW4g
aWYgdGhlIGRpZmYgaXMgU3R5bGVEaWZmZXJlbmNlRXF1YWwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuY3BwCShyZXZpc2lvbiAxODAwNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc0LDEz
ICs0NzQsMTUgQEAgSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZQogICAg
IC8vIExpbWl0IHRoZSBrZXJuZWwgc2l6ZSB0byA1MDAuIEEgYmlnZ2VyIHJhZGl1cyB3b24ndCBt
YWtlIGEgYmlnIGRpZmZlcmVuY2UgZm9yIHRoZSByZXN1bHQgaW1hZ2UgYnV0CiAgICAgLy8gaW5m
bGF0ZXMgdGhlIGFic29sdXRlIHBhaW50IHJlY3QgdG9vIG11Y2guIFRoaXMgaXMgY29tcGF0aWJs
ZSB3aXRoIEZpcmVmb3gnIGJlaGF2aW9yLgogICAgIGlmIChzdGREZXZpYXRpb24ueCgpKSB7Ci0g
ICAgICAgIGludCBzaXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihmbG9vcmYoc3RkRGV2aWF0aW9uLngoKSAqIGdhdXNzaWFuS2VybmVsRmFjdG9yKCkgKyAw
LjVmKSkpOwotICAgICAgICBrZXJuZWxTaXplLnNldFdpZHRoKHN0ZDo6bWluKHNpemUsIGdNYXhL
ZXJuZWxTaXplKSk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4o
Miwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yZihzdGREZXZpYXRpb24ueCgpICogZ2F1c3Np
YW5LZXJuZWxGYWN0b3IoKSArIDAuNWYpKSk7CisgICAgICAgIHVuc2lnbmVkIGNsYW1wZWRTaXpl
ID0gc3RkOjptaW4oc2l6ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGdNYXhLZXJuZWxTaXplKSk7
CisgICAgICAgIGtlcm5lbFNpemUuc2V0V2lkdGgoc3RhdGljX2Nhc3Q8aW50PihjbGFtcGVkU2l6
ZSkpOwogICAgIH0KIAogICAgIGlmIChzdGREZXZpYXRpb24ueSgpKSB7Ci0gICAgICAgIGludCBz
aXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbG9vcmYo
c3RkRGV2aWF0aW9uLnkoKSAqIGdhdXNzaWFuS2VybmVsRmFjdG9yKCkgKyAwLjVmKSkpOwotICAg
ICAgICBrZXJuZWxTaXplLnNldEhlaWdodChzdGQ6Om1pbihzaXplLCBnTWF4S2VybmVsU2l6ZSkp
OworICAgICAgICB1bnNpZ25lZCBzaXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihmbG9vcmYoc3RkRGV2aWF0aW9uLnkoKSAqIGdhdXNzaWFuS2VybmVsRmFj
dG9yKCkgKyAwLjVmKSkpOworICAgICAgICB1bnNpZ25lZCBjbGFtcGVkU2l6ZSA9IHN0ZDo6bWlu
KHNpemUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihnTWF4S2VybmVsU2l6ZSkpOworICAgICAgICBr
ZXJuZWxTaXplLnNldEhlaWdodChzdGF0aWNfY2FzdDxpbnQ+KGNsYW1wZWRTaXplKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGtlcm5lbFNpemU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246591</attachid>
            <date>2015-02-14 09:25:13 -0800</date>
            <delta_ts>2015-02-14 09:49:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141596-20150214092510.patch</filename>
            <type>text/plain</type>
            <size>2585</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDEwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAyLTE0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZFR2F1c3NpYW5CbHVyOjpj
YWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUgZG9lcyB1bnNwZWFrYWJsZSB0aGluZ3Mgd2l0aCBz
aWduZWQgYW5kIHVuc2lnbmVkIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNTk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTgzNzEw
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIENvdmVyZWQgYnkgY3NzMy9maWx0ZXJzL2h1Z2UtYmx1ci12YWx1ZS5odG1sCisK
KyAgICAgICAgQXZvaWQgb3ZlcmZsb3dpbmcgdGhlIHNpZ25lZCBpbnRlZ2VyIHZhbHVlcyBieSBu
b3QgY29udmVydGluZyBmcm9tIHVuc2lnbmVkCisgICAgICAgIHVudGlsIHRoZSBtYXhpbXVtIHNp
emUgaGFzIGJlZW4gY2xhbXBlZCB0byB0aGUgZXhwZWN0ZWQgbWF4LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKToKKwogMjAx
NS0wMi0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRl
ckxpc3RJdGVtIHJlc2V0cyBpdHMgbWFya2VyJ3Mgc3R5bGUgb24gc3R5bGUgY2hhbmdlIGV2ZW4g
aWYgdGhlIGRpZmYgaXMgU3R5bGVEaWZmZXJlbmNlRXF1YWwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuY3BwCShyZXZpc2lvbiAxODAwNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc0LDEz
ICs0NzQsMTUgQEAgSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZQogICAg
IC8vIExpbWl0IHRoZSBrZXJuZWwgc2l6ZSB0byA1MDAuIEEgYmlnZ2VyIHJhZGl1cyB3b24ndCBt
YWtlIGEgYmlnIGRpZmZlcmVuY2UgZm9yIHRoZSByZXN1bHQgaW1hZ2UgYnV0CiAgICAgLy8gaW5m
bGF0ZXMgdGhlIGFic29sdXRlIHBhaW50IHJlY3QgdG9vIG11Y2guIFRoaXMgaXMgY29tcGF0aWJs
ZSB3aXRoIEZpcmVmb3gnIGJlaGF2aW9yLgogICAgIGlmIChzdGREZXZpYXRpb24ueCgpKSB7Ci0g
ICAgICAgIGludCBzaXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihmbG9vcmYoc3RkRGV2aWF0aW9uLngoKSAqIGdhdXNzaWFuS2VybmVsRmFjdG9yKCkgKyAw
LjVmKSkpOwotICAgICAgICBrZXJuZWxTaXplLnNldFdpZHRoKHN0ZDo6bWluKHNpemUsIGdNYXhL
ZXJuZWxTaXplKSk7CisgICAgICAgIHVuc2lnbmVkIHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4o
Miwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yZihzdGREZXZpYXRpb24ueCgpICogZ2F1c3Np
YW5LZXJuZWxGYWN0b3IoKSArIDAuNWYpKSk7CisgICAgICAgIHVuc2lnbmVkIGNsYW1wZWRTaXpl
ID0gc3RkOjptaW4oc2l6ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGdNYXhLZXJuZWxTaXplKSk7
CisgICAgICAgIGtlcm5lbFNpemUuc2V0V2lkdGgoY2xhbXBUbzxpbnQ+KGNsYW1wZWRTaXplKSk7
CiAgICAgfQogCiAgICAgaWYgKHN0ZERldmlhdGlvbi55KCkpIHsKLSAgICAgICAgaW50IHNpemUg
PSBzdGQ6Om1heDx1bnNpZ25lZD4oMiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yZihzdGRE
ZXZpYXRpb24ueSgpICogZ2F1c3NpYW5LZXJuZWxGYWN0b3IoKSArIDAuNWYpKSk7Ci0gICAgICAg
IGtlcm5lbFNpemUuc2V0SGVpZ2h0KHN0ZDo6bWluKHNpemUsIGdNYXhLZXJuZWxTaXplKSk7Cisg
ICAgICAgIHVuc2lnbmVkIHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4oMiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGZsb29yZihzdGREZXZpYXRpb24ueSgpICogZ2F1c3NpYW5LZXJuZWxGYWN0b3Io
KSArIDAuNWYpKSk7CisgICAgICAgIHVuc2lnbmVkIGNsYW1wZWRTaXplID0gc3RkOjptaW4oc2l6
ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGdNYXhLZXJuZWxTaXplKSk7CisgICAgICAgIGtlcm5l
bFNpemUuc2V0SGVpZ2h0KGNsYW1wVG88aW50PihjbGFtcGVkU2l6ZSkpOwogICAgIH0KIAogICAg
IHJldHVybiBrZXJuZWxTaXplOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246593</attachid>
            <date>2015-02-14 09:49:52 -0800</date>
            <delta_ts>2015-02-14 18:59:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141596-20150214094949.patch</filename>
            <type>text/plain</type>
            <size>2997</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDEwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTAyLTE0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZFR2F1c3NpYW5CbHVyOjpj
YWxjdWxhdGVVbnNjYWxlZEtlcm5lbFNpemUgZG9lcyB1bnNwZWFrYWJsZSB0aGluZ3Mgd2l0aCBz
aWduZWQgYW5kIHVuc2lnbmVkIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQxNTk2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTgzNzEw
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIENvdmVyZWQgYnkgY3NzMy9maWx0ZXJzL2h1Z2UtYmx1ci12YWx1ZS5odG1sCisK
KyAgICAgICAgQXZvaWQgb3ZlcmZsb3dpbmcgdGhlIHNpZ25lZCBpbnRlZ2VyIHZhbHVlcyBieSBu
b3QgY29udmVydGluZyBmcm9tIHVuc2lnbmVkCisgICAgICAgIHVudGlsIHRoZSBtYXhpbXVtIHNp
emUgaGFzIGJlZW4gY2xhbXBlZCB0byB0aGUgZXhwZWN0ZWQgbWF4LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2FsZWRLZXJuZWxTaXplKToKKwogMjAx
NS0wMi0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRl
ckxpc3RJdGVtIHJlc2V0cyBpdHMgbWFya2VyJ3Mgc3R5bGUgb24gc3R5bGUgY2hhbmdlIGV2ZW4g
aWYgdGhlIGRpZmYgaXMgU3R5bGVEaWZmZXJlbmNlRXF1YWwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJs
dXIuY3BwCShyZXZpc2lvbiAxODAwNzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY2LDIy
ICs0NjYsMjUgQEAgaW5saW5lIHZvaWQgRkVHYXVzc2lhbkJsdXI6OnBsYXRmb3JtQXBwbAogICAg
IHBsYXRmb3JtQXBwbHlHZW5lcmljKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIGtlcm5l
bFNpemVYLCBrZXJuZWxTaXplWSwgcGFpbnRTaXplKTsKIH0KIAorc3RhdGljIGludCBjbGFtcGVk
S2VybmVsU2l6ZShmbG9hdCB2YWx1ZSkKK3sKKyAgICAvLyBMaW1pdCB0aGUga2VybmVsIHNpemUg
dG8gNTAwLiBBIGJpZ2dlciByYWRpdXMgd29uJ3QgbWFrZSBhIGJpZyBkaWZmZXJlbmNlIGZvciB0
aGUgcmVzdWx0IGltYWdlIGJ1dAorICAgIC8vIGluZmxhdGVzIHRoZSBhYnNvbHV0ZSBwYWludCBy
ZWN0IHRvbyBtdWNoLiBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBGaXJlZm94JyBiZWhhdmlvci4K
KyAgICB1bnNpZ25lZCBzaXplID0gc3RkOjptYXg8dW5zaWduZWQ+KDIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihmbG9vcmYodmFsdWUgKiBnYXVzc2lhbktlcm5lbEZhY3RvcigpICsgMC41ZikpKTsK
KyAgICB1bnNpZ25lZCBjbGFtcGVkU2l6ZSA9IHN0ZDo6bWluKHNpemUsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihnTWF4S2VybmVsU2l6ZSkpOworICAgIHJldHVybiBjbGFtcFRvPGludD4oY2xhbXBl
ZFNpemUpOworfQorICAgIAogSW50U2l6ZSBGRUdhdXNzaWFuQmx1cjo6Y2FsY3VsYXRlVW5zY2Fs
ZWRLZXJuZWxTaXplKGNvbnN0IEZsb2F0UG9pbnQmIHN0ZERldmlhdGlvbikKIHsKICAgICBBU1NF
UlQoc3RkRGV2aWF0aW9uLngoKSA+PSAwICYmIHN0ZERldmlhdGlvbi55KCkgPj0gMCk7CiAgICAg
SW50U2l6ZSBrZXJuZWxTaXplOwogCi0gICAgLy8gTGltaXQgdGhlIGtlcm5lbCBzaXplIHRvIDUw
MC4gQSBiaWdnZXIgcmFkaXVzIHdvbid0IG1ha2UgYSBiaWcgZGlmZmVyZW5jZSBmb3IgdGhlIHJl
c3VsdCBpbWFnZSBidXQKLSAgICAvLyBpbmZsYXRlcyB0aGUgYWJzb2x1dGUgcGFpbnQgcmVjdCB0
b28gbXVjaC4gVGhpcyBpcyBjb21wYXRpYmxlIHdpdGggRmlyZWZveCcgYmVoYXZpb3IuCi0gICAg
aWYgKHN0ZERldmlhdGlvbi54KCkpIHsKLSAgICAgICAgaW50IHNpemUgPSBzdGQ6Om1heDx1bnNp
Z25lZD4oMiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yZihzdGREZXZpYXRpb24ueCgpICog
Z2F1c3NpYW5LZXJuZWxGYWN0b3IoKSArIDAuNWYpKSk7Ci0gICAgICAgIGtlcm5lbFNpemUuc2V0
V2lkdGgoc3RkOjptaW4oc2l6ZSwgZ01heEtlcm5lbFNpemUpKTsKLSAgICB9CisgICAgaWYgKHN0
ZERldmlhdGlvbi54KCkpCisgICAgICAgIGtlcm5lbFNpemUuc2V0V2lkdGgoY2xhbXBlZEtlcm5l
bFNpemUoc3RkRGV2aWF0aW9uLngoKSkpOwogCi0gICAgaWYgKHN0ZERldmlhdGlvbi55KCkpIHsK
LSAgICAgICAgaW50IHNpemUgPSBzdGQ6Om1heDx1bnNpZ25lZD4oMiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGZsb29yZihzdGREZXZpYXRpb24ueSgpICogZ2F1c3NpYW5LZXJuZWxGYWN0b3IoKSAr
IDAuNWYpKSk7Ci0gICAgICAgIGtlcm5lbFNpemUuc2V0SGVpZ2h0KHN0ZDo6bWluKHNpemUsIGdN
YXhLZXJuZWxTaXplKSk7Ci0gICAgfQorICAgIGlmIChzdGREZXZpYXRpb24ueSgpKQorICAgICAg
ICBrZXJuZWxTaXplLnNldEhlaWdodChjbGFtcGVkS2VybmVsU2l6ZShzdGREZXZpYXRpb24ueSgp
KSk7CiAKICAgICByZXR1cm4ga2VybmVsU2l6ZTsKIH0K
</data>
<flag name="review"
          id="271534"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>