<?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>21815</bug_id>
          
          <creation_ts>2008-10-22 16:04:48 -0700</creation_ts>
          <short_desc>CSSNthSelector parsing code is illegible and buggy (allows &quot;n3&quot; as a valid selector)</short_desc>
          <delta_ts>2022-08-08 11:20:06 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>yael</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96256</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-10-22 16:04:48 -0700</bug_when>
    <thetext>CSSNthSelector parsing code is illegible and wrong (allows &quot;n3&quot; as a valid selector)

Ojan pointed out to me that this code was completely unreadable.  When I went to clean it up, I found a bug.  Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96271</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-10-22 17:53:23 -0700</bug_when>
    <thetext>Sam points out that my use of &quot;wrong&quot; might imply that the code itself was completely incorrect.  That was certainly not the case.  It simply has a few strictness bugs, which I found when trying to understand what it was doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96372</commentid>
    <comment_count>2</comment_count>
      <attachid>24608</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-10-23 12:33:39 -0700</bug_when>
    <thetext>Created attachment 24608
Code changes, tests coming soon

 WebCore/css/CSSNthSelector.cpp |  105 ++++++++++++++++++++++++++--------------
 WebCore/css/CSSSelector.h      |    1 +
 2 files changed, 70 insertions(+), 36 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330106</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2011-01-06 06:00:54 -0800</bug_when>
    <thetext>The patch I just uploaded to https://bugs.webkit.org/show_bug.cgi?id=51231 should also fix this bug. (The ns part of it).
Since the class CSSNthSelector no longer exists, should this bug be marked as duplicate of bug 51231 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889500</commentid>
    <comment_count>4</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-08-07 04:52:10 -0700</bug_when>
    <thetext>Is this fixed as part of bug 51231?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889534</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-08-07 10:25:05 -0700</bug_when>
    <thetext>We&apos;ve since rewritten CSS parser by adopting Blink&apos;s.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24608</attachid>
            <date>2008-10-23 12:33:39 -0700</date>
            <delta_ts>2010-06-10 16:11:21 -0700</delta_ts>
            <desc>Code changes, tests coming soon</desc>
            <filename>Code-changes-tests-coming-soon.patch</filename>
            <type>text/plain</type>
            <size>4593</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MjNlZWM3N2UyY2QyZTQ3MmI1NzY4ODE2ZTQ5ZGU2MDlhNzM1ODlkMApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvQ1NTTnRoU2VsZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTTnRoU2VsZWN0b3Iu
Y3BwCmluZGV4IGM2MjY5NGEuLjk1ZTQyMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU050
aFNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NOdGhTZWxlY3Rvci5jcHAKQEAgLTMy
LDUzICszMiw4NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIGEgaGVscGVyIGZ1bmN0
aW9uIGZvciBwYXJzaW5nIG50aC1hcmd1bWVudHMKKy8vIHBhcnNlIGFuIG50aC1hcmd1bWVudCBz
dHJpbmcgYW5kIHJldHVybiBzdWNjZXNzIG9yIGZhaWx1cmUKIGJvb2wgQ1NTTnRoU2VsZWN0b3I6
OnBhcnNlTnRoKCkKIHsKICAgICBpZiAobV9wYXJzZWROdGgpCi0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIAotICAgIGNvbnN0IFN0cmluZyYgbV9hciA9IG1fYXJndW1lbnQ7Ci0gICAgCi0gICAg
aWYgKG1fYXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisgICAgICAg
IHJldHVybiBtX3BhcnNlZE50aE9LOworCisgICAgLy8gVGhlIG1fYXJndW1lbnQgc2hvdWxkIGJl
IHByb3ZpZGVkIGluICJhbiArIGIiIGZvcm0sIHRoaXMgZnVuY3Rpb24gcGFyc2VzCisgICAgLy8g
YSAoaW50byBtX2EpIGFuZCBiIChpbnRvIG1fYikgYW5kIGhhbmRsZXMgIm9kZCIgKDJuICsgMSkg
YW5kICJldmVuIiAoMm4pCisKICAgICBtX3BhcnNlZE50aCA9IHRydWU7Ci0gICAgbV9hID0gMDsK
LSAgICBtX2IgPSAwOwotICAgIGlmIChtX2FyID09ICJvZGQiKSB7CisgICAgLy8gbV9wYXJzZWRO
dGhPSyBpcyBhIGJpdGZpZWxkLCBzbyB3ZSBjYW4ndCBwYXNzIGl0cyBhZGRyZXNzIHRvIHRvSW50
CisgICAgLy8gaW5zdGVhZCB3ZSBoYXZlIGEgbG9jYWwgYm9vbCAicGFyc2VkT0siLiAgV2UgbXVz
dCBiZSBzdXJlIHRvIHVwZGF0ZQorICAgIC8vIG1fcGFyc2VkTnRoT0sgYmVmb3JlIHJldHVybmlu
ZywgbGlrZSAicmV0dXJuIChtX3BhcnNlZE50aE9LID0gcGFyc2VkT0spOyIKKyAgICBib29sIHBh
cnNlZE9LID0gdHJ1ZTsKKworICAgIGlmIChtX2FyZ3VtZW50LmlzRW1wdHkoKSkgeworICAgICAg
ICBwYXJzZWRPSyA9IGZhbHNlOworICAgICAgICByZXR1cm4gKG1fcGFyc2VkTnRoT0sgPSBwYXJz
ZWRPSyk7CisgICAgfQorCisgICAgaWYgKG1fYXJndW1lbnQgPT0gIm9kZCIpIHsKICAgICAgICAg
bV9hID0gMjsKICAgICAgICAgbV9iID0gMTsKLSAgICB9IGVsc2UgaWYgKG1fYXIgPT0gImV2ZW4i
KSB7CisgICAgICAgIHJldHVybiAobV9wYXJzZWROdGhPSyA9IHBhcnNlZE9LKTsKKyAgICB9Cisg
ICAgaWYgKG1fYXJndW1lbnQgPT0gImV2ZW4iKSB7CiAgICAgICAgIG1fYSA9IDI7CiAgICAgICAg
IG1fYiA9IDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW50IG4gPSBtX2FyLmZpbmQoJ24nKTsK
LSAgICAgICAgaWYgKG4gIT0gLTEpIHsKLSAgICAgICAgICAgIGlmIChtX2FyWzBdID09ICctJykg
ewotICAgICAgICAgICAgICAgIGlmIChuID09IDEpCi0gICAgICAgICAgICAgICAgICAgIG1fYSA9
IC0xOyAvLyAtbiA9PSAtMW4KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
ICAgIG1fYSA9IG1fYXIuc3Vic3RyaW5nKDAsIG4pLnRvSW50KCk7Ci0gICAgICAgICAgICB9IGVs
c2UgaWYgKCFuKQotICAgICAgICAgICAgICAgIG1fYSA9IDE7IC8vIG4gPT0gMW4KLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX2EgPSBtX2FyLnN1YnN0cmluZygwLCBuKS50b0lu
dCgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpbnQgcCA9IG1fYXIuZmluZCgnKycsIG4p
OwotICAgICAgICAgICAgaWYgKHAgIT0gLTEpCi0gICAgICAgICAgICAgICAgbV9iID0gbV9hci5z
dWJzdHJpbmcocCArIDEsIG1fYXIubGVuZ3RoKCkgLSBwIC0gMSkudG9JbnQoKTsKLSAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHAgPSBtX2FyLmZpbmQoJy0nLCBuKTsKLSAgICAg
ICAgICAgICAgICBtX2IgPSAtbV9hci5zdWJzdHJpbmcocCArIDEsIG1fYXIubGVuZ3RoKCkgLSBw
IC0gMSkudG9JbnQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBtX2IgPSBtX2FyLnRvSW50KCk7CisgICAgICAgIHJldHVybiAobV9wYXJzZWROdGhPSyA9IHBh
cnNlZE9LKTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBjb252ZXJ0IG1fYXJn
dW1lbnQgdG8gYSBTdHJpbmcgc28gd2UgY2FuIHVzZSBTdHJpbmcgZnVuY3Rpb25zIG9uIGl0Cisg
ICAgY29uc3QgU3RyaW5nJiBhcmd1bWVudCA9IG1fYXJndW1lbnQ7CisKKyAgICBtX2EgPSAwOwor
ICAgIG1fYiA9IDA7CisgICAgaW50IG5PZmZzZXQgPSBhcmd1bWVudC5maW5kKCduJyk7CisgICAg
aWYgKG5PZmZzZXQgPT0gLTEpIHsKKyAgICAgICAgLy8gYXJndW1lbnQgZG9lcyBub3QgY29udGFp
biAibiIsIHRoZSBlbnRpcmUgc3RyaW5nIGlzIHRoZSAiYiIgdmFsdWUKKyAgICAgICAgbV9iID0g
YXJndW1lbnQudG9JbnQoJnBhcnNlZE9LKTsKKyAgICAgICAgcmV0dXJuIChtX3BhcnNlZE50aE9L
ID0gcGFyc2VkT0spOworICAgIH0KKworICAgIC8vIEhhbmRsZSB0aGUgcGFydCBvZiB0aGUgYXJn
dW1lbnQgYmVmb3JlICJuIiAodGhlICJhIiB2YWx1ZSkKKyAgICBpZiAoYXJndW1lbnRbMF0gPT0g
Jy0nKSB7CisgICAgICAgIGlmIChuT2Zmc2V0ID09IDEpCisgICAgICAgICAgICBtX2EgPSAtMTsg
Ly8gLW4gPT0gLTFuCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYSA9IGFyZ3VtZW50LnN1
YnN0cmluZygwLCBuT2Zmc2V0KS50b0ludCgmcGFyc2VkT0spOworICAgIH0gZWxzZSBpZiAobk9m
ZnNldCA9PSAwKQorICAgICAgICBtX2EgPSAxOyAvLyBuID09IDFuCisgICAgZWxzZQorICAgICAg
ICBtX2EgPSBhcmd1bWVudC5zdWJzdHJpbmcoMCwgbk9mZnNldCkudG9JbnQoJnBhcnNlZE9LKTsK
KworICAgIGlmICghcGFyc2VkT0spCisgICAgICAgIHJldHVybiAobV9wYXJzZWROdGhPSyA9IHBh
cnNlZE9LKTsKKworICAgIC8vIElmIGFyZ3VtZW50IGVuZHMgaW4gIm4iIHRoZW4gd2UncmUgZG9u
ZSBwYXJzaW5nCisgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihuT2Zmc2V0KSArIDEgPT0g
YXJndW1lbnQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAobV9wYXJzZWROdGhPSyA9IHBhcnNl
ZE9LKTsKKworICAgIC8vIEhhbmRsZSB0aGUgcGFydCBvZiB0aGUgYXJndW1lbnQgYWZ0ZXIgIm4i
ICh0aGUgImIiIHZhbHVlKQorICAgIGludCBwbHVzT2Zmc2V0ID0gYXJndW1lbnQuZmluZCgnKycs
IG5PZmZzZXQpOworICAgIGlmIChwbHVzT2Zmc2V0ICE9IC0xKSB7CisgICAgICAgIG1fYiA9IGFy
Z3VtZW50LnN1YnN0cmluZyhwbHVzT2Zmc2V0ICsgMSwgYXJndW1lbnQubGVuZ3RoKCkgLSBwbHVz
T2Zmc2V0IC0gMSkudG9JbnQoJnBhcnNlZE9LKTsKKyAgICAgICAgcmV0dXJuIChtX3BhcnNlZE50
aE9LID0gcGFyc2VkT0spOworICAgIH0KKyAgICBpbnQgbWludXNPZmZzZXQgPSBhcmd1bWVudC5m
aW5kKCctJywgbk9mZnNldCk7CisgICAgaWYgKG1pbnVzT2Zmc2V0ICE9IC0xKSB7CisgICAgICAg
IG1fYiA9IC1hcmd1bWVudC5zdWJzdHJpbmcobWludXNPZmZzZXQgKyAxLCBhcmd1bWVudC5sZW5n
dGgoKSAtIG1pbnVzT2Zmc2V0IC0gMSkudG9JbnQoJnBhcnNlZE9LKTsKKyAgICAgICAgcmV0dXJu
IChtX3BhcnNlZE50aE9LID0gcGFyc2VkT0spOworICAgIH0KKworICAgIC8vIE5vICsgb3IgLSBv
cGVyYW5kIHdhcyBmb3VuZCwgdGh1cyB3ZSBoYXZlIGV4dHJhIG5vbi13aGl0ZXNwYWNlIGp1bmsg
cGFzdAorICAgIC8vIHRoZSAibiIsIHRodXMgbWFraW5nIHRoaXMgc2VsZWN0b3IgaW52YWxpZC4K
KyAgICBwYXJzZWRPSyA9IGZhbHNlOworICAgIHJldHVybiAobV9wYXJzZWROdGhPSyA9IGZhbHNl
KTsKIH0KIAotLy8gYSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNoZWNraW5nIG50aC1hcmd1bWVudHMK
Ky8vIGNoZWNrIHRvIHNlZSBpZiB0aGlzIHNlbGVjdG9yIG1hdGNoZXMgYSBnaXZlbiBjb3VudCB2
YWx1ZQogYm9vbCBDU1NOdGhTZWxlY3Rvcjo6bWF0Y2hOdGgoaW50IGNvdW50KQogewogICAgIGlm
ICghbV9hKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNGY4Mjg3Ny4uNTExYTMyYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBA
IC0yMTQsNiArMjE0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICBwcm90
ZWN0ZWQ6CiAgICAgICAgIGJvb2wgbV9wYXJzZWROdGggICAgICAgICAgICAgIDogMTsgLy8gdXNl
ZCBpbiBDU1NOdGhTZWxlY3RvcgorICAgICAgICBib29sIG1fcGFyc2VkTnRoT0sgICAgICAgICAg
ICA6IDE7IC8vIHVzZWQgaW4gQ1NTTnRoU2VsZWN0b3IKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>