<?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>30347</bug_id>
          
          <creation_ts>2009-10-13 16:20:08 -0700</creation_ts>
          <short_desc>Uninitialized conditional in WebCore::CSSParser::validUnit with &quot;width: %&quot; style</short_desc>
          <delta_ts>2009-10-15 16:55:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>0</everconfirmed>
          <reporter name="Matt Mueller">mattm</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agl</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154484</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Mueller">mattm</who>
    <bug_when>2009-10-13 16:20:08 -0700</bug_when>
    <thetext>LayoutTests/fast/css/invalid-percentage-property.html causes a valgrind &quot;Conditional jump or move depends on uninitialised value(s)&quot; error.

validUnit is called with the FNonNeg flag, which checks the fValue before checking anything else, but the &quot;width: %&quot; grammar does not set any fValue.

This does not seem to cause any misbehavior in this case since validUnit will always return false regardless if the FNonNeg check fails or the value-&gt;unit tests falls through.  However, it does create valgrind noise which is nice to avoid.

Very similar to bug 22772.

Will attach a patch which addresses this particular case be initializing fValue in the grammar, though I don&apos;t know if this is the best way to go about it.  validUnit could be refactored so the check is only done for units where it makes sense, though that might introduce a slight runtime or code size cost.

Chromium bug:
http://code.google.com/p/chromium/issues/detail?id=20939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154485</commentid>
    <comment_count>1</comment_count>
      <attachid>41137</attachid>
    <who name="Matt Mueller">mattm</who>
    <bug_when>2009-10-13 16:24:40 -0700</bug_when>
    <thetext>Created attachment 41137
initialize fValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154487</commentid>
    <comment_count>2</comment_count>
      <attachid>41137</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-13 16:36:09 -0700</bug_when>
    <thetext>Comment on attachment 41137
initialize fValue

I think a better fix for this would be to move the negative number check after the switch statement in CSSParser::validUnit.

    if (b &amp;&amp; unitflags &amp; FNonNeg &amp;&amp; value-&gt;fValue &lt; 0)
        b = false;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154495</commentid>
    <comment_count>3</comment_count>
      <attachid>41139</attachid>
    <who name="Matt Mueller">mattm</who>
    <bug_when>2009-10-13 17:06:09 -0700</bug_when>
    <thetext>Created attachment 41139
Move the non-negative check after the switch

Yeah, that does look more general.  Should fix 22772 too, though I don&apos;t have a test case for that.  I&apos;ve updated the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154497</commentid>
    <comment_count>4</comment_count>
      <attachid>41140</attachid>
    <who name="Matt Mueller">mattm</who>
    <bug_when>2009-10-13 17:09:42 -0700</bug_when>
    <thetext>Created attachment 41140
Move the non-negative check after the switch

(Fixed changelog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154724</commentid>
    <comment_count>5</comment_count>
      <attachid>41140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-14 23:12:47 -0700</bug_when>
    <thetext>Comment on attachment 41140
Move the non-negative check after the switch

Clearing flags on attachment: 41140

Committed r49609: &lt;http://trac.webkit.org/changeset/49609&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154725</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-14 23:12:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154951</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-10-15 16:55:28 -0700</bug_when>
    <thetext>*** Bug 22772 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41137</attachid>
            <date>2009-10-13 16:24:40 -0700</date>
            <delta_ts>2009-10-13 17:06:09 -0700</delta_ts>
            <desc>initialize fValue</desc>
            <filename>webkit_30347_01.diff</filename>
            <type>text/plain</type>
            <size>1013</size>
            <attacher name="Matt Mueller">mattm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjJhYzVjOS4uM2FiZjJmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMC0xMyAgTWF0dCBNdWVsbGVy
ICA8bWF0dG1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEluaXRpYWxpemUgZlZhbHVlIGluICJ3aWR0aDogJSIgZ3JhbW1hciB0
byBhdm9pZCB2YWxncmluZCB1bmluaXRpYWxpc2VkIGNvbmRpdGlvbmFsIHJlZmVyZW5jZSBpbiBX
ZWJDb3JlOjpDU1NQYXJzZXI6OnZhbGlkVW5pdC4gIFNlZSBodHRwOi8vY3JidWcuY29tLzIwOTM5
LgorCWh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDM0NworCisgICAg
ICAgIENvdmVyZWQgYnkgcnVubmluZyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkLXBlcmNl
bnRhZ2UtcHJvcGVydHkuaHRtbCB1bmRlciB2YWxncmluZC4KKworICAgICAgICAqIGNzcy9DU1NH
cmFtbWFyLnk6CisKIDIwMDktMTAtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueSBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRl
eCAxYzFmN2I0Li5kM2NkZmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CkBAIC0xMzg3LDcgKzEzODcsNyBAQCB0ZXJt
OgogICAgICAgJCQgPSAkMTsKICAgfQogICB8ICclJyBtYXliZV9zcGFjZSB7IC8qIEhhbmRsZSB3
aWR0aDogJTsgKi8KLSAgICAgICQkLmlkID0gMDsgJCQudW5pdCA9IDA7CisgICAgICAkJC5pZCA9
IDA7ICQkLnVuaXQgPSAwOyAkJC5mVmFsdWUgPSAwOwogICB9CiAgIDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41139</attachid>
            <date>2009-10-13 17:06:09 -0700</date>
            <delta_ts>2009-10-13 17:09:42 -0700</delta_ts>
            <desc>Move the non-negative check after the switch</desc>
            <filename>webkit_30347_02.diff</filename>
            <type>text/plain</type>
            <size>1377</size>
            <attacher name="Matt Mueller">mattm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjJhYzVjOS4uODFlM2M4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMC0xMyAgTWF0dCBNdWVsbGVy
ICA8bWF0dG1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoZWNrIEZOb25OZWcgYWZ0ZXIgdGhlIHVuaXQgc3dpdGNoIHRvIGF2
b2lkIHZhbGdyaW5kIHVuaW5pdGlhbGlzZWQgY29uZGl0aW9uYWwgcmVmZXJlbmNlIGluIFdlYkNv
cmU6OkNTU1BhcnNlcjo6dmFsaWRVbml0LiAgU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMjA5MzkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDM0NworCisg
ICAgICAgIENvdmVyZWQgYnkgcnVubmluZyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbnZhbGlkLXBl
cmNlbnRhZ2UtcHJvcGVydHkuaHRtbCB1bmRlciB2YWxncmluZC4KKworICAgICAgICAqIGNzcy9D
U1NHcmFtbWFyLnk6CisKIDIwMDktMTAtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CmluZGV4IGQ3NjhiZGIuLmZkNmNiNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDA1LDkgKzQwNSw2IEBA
IERvY3VtZW50KiBDU1NQYXJzZXI6OmRvY3VtZW50KCkgY29uc3QKIAogYm9vbCBDU1NQYXJzZXI6
OnZhbGlkVW5pdChDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIFVuaXRzIHVuaXRmbGFncywgYm9vbCBz
dHJpY3QpCiB7Ci0gICAgaWYgKHVuaXRmbGFncyAmIEZOb25OZWcgJiYgdmFsdWUtPmZWYWx1ZSA8
IDApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGJvb2wgYiA9IGZhbHNlOwogICAgIHN3
aXRjaCAodmFsdWUtPnVuaXQpIHsKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVN
QkVSOgpAQCAtNDUxLDYgKzQ0OCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjp2YWxpZFVuaXQoQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlLCBVbml0cyB1bml0ZmxhZ3MsIGJvb2wgc3RyaWN0KQogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBpZiAoYiAmJiB1bml0ZmxhZ3MgJiBGTm9u
TmVnICYmIHZhbHVlLT5mVmFsdWUgPCAwKQorICAgICAgICBiID0gZmFsc2U7CiAgICAgcmV0dXJu
IGI7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41140</attachid>
            <date>2009-10-13 17:09:42 -0700</date>
            <delta_ts>2009-10-14 23:12:47 -0700</delta_ts>
            <desc>Move the non-negative check after the switch</desc>
            <filename>webkit_30347_03.diff</filename>
            <type>text/plain</type>
            <size>1475</size>
            <attacher name="Matt Mueller">mattm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjJhYzVjOS4uZTI2ZTQ2MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMC0xMyAgTWF0dCBNdWVsbGVy
ICA8bWF0dG1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoZWNrIEZOb25OZWcgYWZ0ZXIgdGhlIHVuaXQgc3dpdGNoIHRvIGF2
b2lkIHZhbGdyaW5kIHVuaW5pdGlhbGlzZWQgY29uZGl0aW9uYWwgcmVmZXJlbmNlIGluIFdlYkNv
cmU6OkNTU1BhcnNlcjo6dmFsaWRVbml0LiAgU2VlIGh0dHA6Ly9jcmJ1Zy5jb20vMjA5MzkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDM0NworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzIKKworICAg
ICAgICBDb3ZlcmVkIGJ5IHJ1bm5pbmcgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW52YWxpZC1wZXJj
ZW50YWdlLXByb3BlcnR5Lmh0bWwgdW5kZXIgdmFsZ3JpbmQuCisKKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dmFsaWRVbml0KToKKwog
MjAwOS0xMC0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZDc2OGJkYi4u
ZmQ2Y2I0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC00MDUsOSArNDA1LDYgQEAgRG9jdW1lbnQqIENTU1Bh
cnNlcjo6ZG9jdW1lbnQoKSBjb25zdAogCiBib29sIENTU1BhcnNlcjo6dmFsaWRVbml0KENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSwgVW5pdHMgdW5pdGZsYWdzLCBib29sIHN0cmljdCkKIHsKLSAgICBp
ZiAodW5pdGZsYWdzICYgRk5vbk5lZyAmJiB2YWx1ZS0+ZlZhbHVlIDwgMCkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCiAgICAgYm9vbCBiID0gZmFsc2U7CiAgICAgc3dpdGNoICh2YWx1ZS0+dW5p
dCkgewogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVI6CkBAIC00NTEsNiAr
NDQ4LDggQEAgYm9vbCBDU1NQYXJzZXI6OnZhbGlkVW5pdChDU1NQYXJzZXJWYWx1ZSogdmFsdWUs
IFVuaXRzIHVuaXRmbGFncywgYm9vbCBzdHJpY3QpCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJl
YWs7CiAgICAgfQorICAgIGlmIChiICYmIHVuaXRmbGFncyAmIEZOb25OZWcgJiYgdmFsdWUtPmZW
YWx1ZSA8IDApCisgICAgICAgIGIgPSBmYWxzZTsKICAgICByZXR1cm4gYjsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>