[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:39:41 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 3237651b1e2754ceb9306443f61091d137414de5
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu May 1 00:44:06 2003 +0000

    	Fix for 3210725, invalid n/a selector treated as valid.  This
    	fix also makes the CSS1 test on the test suite for forward-compatible
    	parsing completely pass (yay!), which was an issue on
    	diveintomark's list.
    
            Reviewed by gramps
    
            * khtml/css/parser.cpp:
            * khtml/css/parser.y:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4233 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index da15c71..8998b11 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,17 @@
 2003-04-30  David Hyatt  <hyatt at apple.com>
 
+	Fix for 3210725, invalid n/a selector treated as valid.  This
+	fix also makes the CSS1 test on the test suite for forward-compatible
+	parsing completely pass (yay!), which was an issue on
+	diveintomark's list.
+
+        Reviewed by gramps
+
+        * khtml/css/parser.cpp:
+        * khtml/css/parser.y:
+
+2003-04-30  David Hyatt  <hyatt at apple.com>
+
 	Fixes for 3227983 and 3224521, both bugs involving bad letter-spacing
 	property values.  This fixes all Movable Type blogs that had this
 	error in their stylesheets.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index da15c71..8998b11 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,17 @@
 2003-04-30  David Hyatt  <hyatt at apple.com>
 
+	Fix for 3210725, invalid n/a selector treated as valid.  This
+	fix also makes the CSS1 test on the test suite for forward-compatible
+	parsing completely pass (yay!), which was an issue on
+	diveintomark's list.
+
+        Reviewed by gramps
+
+        * khtml/css/parser.cpp:
+        * khtml/css/parser.y:
+
+2003-04-30  David Hyatt  <hyatt at apple.com>
+
 	Fixes for 3227983 and 3224521, both bugs involving bad letter-spacing
 	property values.  This fixes all Movable Type blogs that had this
 	error in their stylesheets.
diff --git a/WebCore/khtml/css/parser.cpp b/WebCore/khtml/css/parser.cpp
index 1e1886d..89bee53 100644
--- a/WebCore/khtml/css/parser.cpp
+++ b/WebCore/khtml/css/parser.cpp
@@ -298,16 +298,16 @@ static const short yyrline[] = { 0,
    322,   324,   325,   326,   327,   328,   331,   344,   347,   352,
    354,   357,   361,   365,   369,   373,   378,   384,   398,   400,
    409,   431,   435,   440,   444,   449,   451,   452,   455,   457,
-   460,   480,   494,   508,   514,   518,   537,   543,   548,   553,
-   560,   581,   586,   591,   601,   607,   614,   615,   616,   619,
-   628,   652,   658,   666,   670,   673,   676,   679,   682,   687,
-   689,   692,   698,   704,   712,   716,   721,   724,   730,   738,
-   742,   745,   751,   757,   762,   768,   776,   799,   803,   811,
-   818,   825,   827,   830,   835,   848,   854,   858,   861,   866,
-   868,   869,   870,   876,   877,   878,   880,   885,   887,   888,
-   889,   890,   891,   892,   893,   894,   895,   896,   897,   898,
-   899,   900,   901,   902,   903,   904,   908,   916,   928,   935,
-   942,   950,   976,   978,   981,   983
+   460,   480,   494,   508,   514,   518,   541,   547,   552,   557,
+   564,   585,   590,   595,   605,   611,   618,   619,   620,   623,
+   632,   656,   662,   670,   674,   677,   680,   683,   686,   691,
+   693,   696,   702,   708,   716,   720,   725,   728,   734,   742,
+   746,   749,   755,   761,   766,   772,   780,   803,   807,   815,
+   822,   829,   831,   834,   839,   852,   858,   862,   865,   870,
+   872,   873,   874,   880,   881,   882,   884,   889,   891,   892,
+   893,   894,   895,   896,   897,   898,   899,   900,   901,   902,
+   903,   904,   905,   906,   907,   908,   912,   920,   932,   939,
+   946,   954,   980,   982,   985,   987
 };
 #endif
 
@@ -1411,7 +1411,11 @@ case 56:
 #line 518 "parser.y"
 {
     	yyval.selector = yyvsp[0].selector;
-        if (yyval.selector) {
+        if (!yyvsp[-2].selector) {
+            delete yyvsp[0].selector;
+            yyval.selector = 0;
+        }
+        else if (yyval.selector) {
             CSSSelector *end = yyval.selector;
             while( end->tagHistory )
                 end = end->tagHistory;
@@ -1430,21 +1434,21 @@ case 56:
     ;
     break;}
 case 57:
-#line 537 "parser.y"
+#line 541 "parser.y"
 {
         delete yyvsp[-1].selector;
         yyval.selector = 0;
     ;
     break;}
 case 58:
-#line 544 "parser.y"
+#line 548 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->tag = yyvsp[-1].element;
     ;
     break;}
 case 59:
-#line 548 "parser.y"
+#line 552 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
 	if ( yyval.selector )
@@ -1452,7 +1456,7 @@ case 59:
     ;
     break;}
 case 60:
-#line 553 "parser.y"
+#line 557 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
 	if ( yyval.selector )
@@ -1460,7 +1464,7 @@ case 60:
     ;
     break;}
 case 61:
-#line 561 "parser.y"
+#line 565 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -1483,20 +1487,20 @@ case 61:
     ;
     break;}
 case 62:
-#line 581 "parser.y"
+#line 585 "parser.y"
 {
 	yyval.element = -1;
     ;
     break;}
 case 63:
-#line 587 "parser.y"
+#line 591 "parser.y"
 {
 	yyval.selector = yyvsp[0].selector;
 	yyval.selector->nonCSSHint = static_cast<CSSParser *>(parser)->nonCSSHint;
     ;
     break;}
 case 64:
-#line 591 "parser.y"
+#line 595 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
         if (yyval.selector) {
@@ -1509,14 +1513,14 @@ case 64:
     ;
     break;}
 case 65:
-#line 601 "parser.y"
+#line 605 "parser.y"
 {
         delete yyvsp[-1].selector;
         yyval.selector = 0;
     ;
     break;}
 case 66:
-#line 608 "parser.y"
+#line 612 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Id;
@@ -1525,7 +1529,7 @@ case 66:
     ;
     break;}
 case 70:
-#line 620 "parser.y"
+#line 624 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::List;
@@ -1534,7 +1538,7 @@ case 70:
     ;
     break;}
 case 71:
-#line 629 "parser.y"
+#line 633 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -1558,7 +1562,7 @@ case 71:
     ;
     break;}
 case 72:
-#line 653 "parser.y"
+#line 657 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->attr = yyvsp[-1].attribute;
@@ -1566,7 +1570,7 @@ case 72:
     ;
     break;}
 case 73:
-#line 658 "parser.y"
+#line 662 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->attr = yyvsp[-5].attribute;
@@ -1575,43 +1579,43 @@ case 73:
     ;
     break;}
 case 74:
-#line 667 "parser.y"
+#line 671 "parser.y"
 {
 	yyval.val = CSSSelector::Exact;
     ;
     break;}
 case 75:
-#line 670 "parser.y"
+#line 674 "parser.y"
 {
 	yyval.val = CSSSelector::List;
     ;
     break;}
 case 76:
-#line 673 "parser.y"
+#line 677 "parser.y"
 {
 	yyval.val = CSSSelector::Hyphen;
     ;
     break;}
 case 77:
-#line 676 "parser.y"
+#line 680 "parser.y"
 {
 	yyval.val = CSSSelector::Begin;
     ;
     break;}
 case 78:
-#line 679 "parser.y"
+#line 683 "parser.y"
 {
 	yyval.val = CSSSelector::End;
     ;
     break;}
 case 79:
-#line 682 "parser.y"
+#line 686 "parser.y"
 {
 	yyval.val = CSSSelector::Contain;
     ;
     break;}
 case 82:
-#line 693 "parser.y"
+#line 697 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->match = CSSSelector::Pseudo;
@@ -1619,7 +1623,7 @@ case 82:
     ;
     break;}
 case 83:
-#line 699 "parser.y"
+#line 703 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->match = CSSSelector::Pseudo;
@@ -1627,7 +1631,7 @@ case 83:
     ;
     break;}
 case 84:
-#line 704 "parser.y"
+#line 708 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->match = CSSSelector::Pseudo;
@@ -1636,13 +1640,13 @@ case 84:
     ;
     break;}
 case 85:
-#line 713 "parser.y"
+#line 717 "parser.y"
 {
 	yyval.ok = yyvsp[0].ok;
     ;
     break;}
 case 86:
-#line 716 "parser.y"
+#line 720 "parser.y"
 {
 	yyval.ok = yyvsp[-1].ok;
 	if ( yyvsp[0].ok )
@@ -1650,13 +1654,13 @@ case 86:
     ;
     break;}
 case 87:
-#line 721 "parser.y"
+#line 725 "parser.y"
 {
 	yyval.ok = yyvsp[0].ok;
     ;
     break;}
 case 88:
-#line 724 "parser.y"
+#line 728 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1665,7 +1669,7 @@ case 88:
     ;
     break;}
 case 89:
-#line 730 "parser.y"
+#line 734 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1674,19 +1678,19 @@ case 89:
     ;
     break;}
 case 90:
-#line 739 "parser.y"
+#line 743 "parser.y"
 {
 	yyval.ok = yyvsp[-2].ok;
     ;
     break;}
 case 91:
-#line 742 "parser.y"
+#line 746 "parser.y"
 {
         yyval.ok = false;
     ;
     break;}
 case 92:
-#line 745 "parser.y"
+#line 749 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1695,7 +1699,7 @@ case 92:
     ;
     break;}
 case 93:
-#line 751 "parser.y"
+#line 755 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1704,7 +1708,7 @@ case 93:
     ;
     break;}
 case 94:
-#line 757 "parser.y"
+#line 761 "parser.y"
 {
 	yyval.ok = yyvsp[-3].ok;
 	if ( yyvsp[-2].ok )
@@ -1712,7 +1716,7 @@ case 94:
     ;
     break;}
 case 95:
-#line 762 "parser.y"
+#line 766 "parser.y"
 {
 	yyval.ok = yyvsp[-3].ok;
 #ifdef CSS_DEBUG
@@ -1721,7 +1725,7 @@ case 95:
     ;
     break;}
 case 96:
-#line 768 "parser.y"
+#line 772 "parser.y"
 {
 	yyval.ok = yyvsp[-5].ok;
 #ifdef CSS_DEBUG
@@ -1730,7 +1734,7 @@ case 96:
     ;
     break;}
 case 97:
-#line 777 "parser.y"
+#line 781 "parser.y"
 {
 	yyval.ok = false;
 	CSSParser *p = static_cast<CSSParser *>(parser);
@@ -1755,13 +1759,13 @@ case 97:
     ;
     break;}
 case 98:
-#line 800 "parser.y"
+#line 804 "parser.y"
 {
         yyval.ok = false;
     ;
     break;}
 case 99:
-#line 804 "parser.y"
+#line 808 "parser.y"
 {
         /* The default movable type template has letter-spacing: .none;  Handle this by looking for
         error tokens at the start of an expr, recover the expr and then treat as an error, cleaning
@@ -1771,36 +1775,36 @@ case 99:
     ;
     break;}
 case 100:
-#line 812 "parser.y"
+#line 816 "parser.y"
 {
         /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
         yyval.ok = false;
     ;
     break;}
 case 101:
-#line 819 "parser.y"
+#line 823 "parser.y"
 {
 	QString str = qString(yyvsp[-1].string);
 	yyval.prop_id = getPropertyID( str.lower().latin1(), str.length() );
     ;
     break;}
 case 102:
-#line 826 "parser.y"
+#line 830 "parser.y"
 { yyval.b = true; ;
     break;}
 case 103:
-#line 827 "parser.y"
+#line 831 "parser.y"
 { yyval.b = false; ;
     break;}
 case 104:
-#line 831 "parser.y"
+#line 835 "parser.y"
 {
 	yyval.valueList = new ValueList;
 	yyval.valueList->addValue( yyvsp[0].value );
     ;
     break;}
 case 105:
-#line 835 "parser.y"
+#line 839 "parser.y"
 {
         yyval.valueList = yyvsp[-2].valueList;
 	if ( yyval.valueList ) {
@@ -1816,44 +1820,44 @@ case 105:
     ;
     break;}
 case 106:
-#line 848 "parser.y"
+#line 852 "parser.y"
 {
         delete yyvsp[-1].valueList;
         yyval.valueList = 0;
     ;
     break;}
 case 107:
-#line 855 "parser.y"
+#line 859 "parser.y"
 {
 	yyval.tok = '/';
     ;
     break;}
 case 108:
-#line 858 "parser.y"
+#line 862 "parser.y"
 {
 	yyval.tok = ',';
     ;
     break;}
 case 109:
-#line 861 "parser.y"
+#line 865 "parser.y"
 {
         yyval.tok = 0;
   ;
     break;}
 case 110:
-#line 867 "parser.y"
+#line 871 "parser.y"
 { yyval.value = yyvsp[0].value; ;
     break;}
 case 111:
-#line 868 "parser.y"
+#line 872 "parser.y"
 { yyval.value = yyvsp[0].value; yyval.value.fValue *= yyvsp[-1].val; ;
     break;}
 case 112:
-#line 869 "parser.y"
+#line 873 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_STRING; ;
     break;}
 case 113:
-#line 870 "parser.y"
+#line 874 "parser.y"
 {
       QString str = qString( yyvsp[-1].string );
       yyval.value.id = getValueID( str.lower().latin1(), str.length() );
@@ -1862,101 +1866,101 @@ case 113:
   ;
     break;}
 case 114:
-#line 876 "parser.y"
+#line 880 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
     break;}
 case 115:
-#line 877 "parser.y"
+#line 881 "parser.y"
 { yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
     break;}
 case 116:
-#line 878 "parser.y"
+#line 882 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
     break;}
 case 117:
-#line 880 "parser.y"
+#line 884 "parser.y"
 {
       yyval.value = yyvsp[0].value;
   ;
     break;}
 case 118:
-#line 886 "parser.y"
+#line 890 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
     break;}
 case 119:
-#line 887 "parser.y"
+#line 891 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
     break;}
 case 120:
-#line 888 "parser.y"
+#line 892 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
     break;}
 case 121:
-#line 889 "parser.y"
+#line 893 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
     break;}
 case 122:
-#line 890 "parser.y"
+#line 894 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
     break;}
 case 123:
-#line 891 "parser.y"
+#line 895 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
     break;}
 case 124:
-#line 892 "parser.y"
+#line 896 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
     break;}
 case 125:
-#line 893 "parser.y"
+#line 897 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
     break;}
 case 126:
-#line 894 "parser.y"
+#line 898 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
     break;}
 case 127:
-#line 895 "parser.y"
+#line 899 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
     break;}
 case 128:
-#line 896 "parser.y"
+#line 900 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
     break;}
 case 129:
-#line 897 "parser.y"
+#line 901 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
     break;}
 case 130:
-#line 898 "parser.y"
+#line 902 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
     break;}
 case 131:
-#line 899 "parser.y"
+#line 903 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
     break;}
 case 132:
-#line 900 "parser.y"
+#line 904 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
     break;}
 case 133:
-#line 901 "parser.y"
+#line 905 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
     break;}
 case 134:
-#line 902 "parser.y"
+#line 906 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
     break;}
 case 135:
-#line 903 "parser.y"
+#line 907 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
     break;}
 case 136:
-#line 904 "parser.y"
+#line 908 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
     break;}
 case 137:
-#line 909 "parser.y"
+#line 913 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-4].string;
@@ -1967,7 +1971,7 @@ case 137:
   ;
     break;}
 case 138:
-#line 917 "parser.y"
+#line 921 "parser.y"
 {
       yyval.value.id = 0;
       yyval.value.unit = Value::Function;
@@ -1975,11 +1979,11 @@ case 138:
   ;
     break;}
 case 139:
-#line 929 "parser.y"
+#line 933 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
 case 140:
-#line 936 "parser.y"
+#line 940 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1988,7 +1992,7 @@ case 140:
     ;
     break;}
 case 141:
-#line 942 "parser.y"
+#line 946 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1997,7 +2001,7 @@ case 141:
     ;
     break;}
 case 142:
-#line 951 "parser.y"
+#line 955 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2227,6 +2231,6 @@ yyerrhandle:
     }
   return 1;
 }
-#line 986 "parser.y"
+#line 990 "parser.y"
 
 
diff --git a/WebCore/khtml/css/parser.y b/WebCore/khtml/css/parser.y
index 16c9bbb..0cd5909 100644
--- a/WebCore/khtml/css/parser.y
+++ b/WebCore/khtml/css/parser.y
@@ -517,7 +517,11 @@ selector:
     }
     | selector combinator simple_selector {
     	$$ = $3;
-        if ($$) {
+        if (!$1) {
+            delete $3;
+            $$ = 0;
+        }
+        else if ($$) {
             CSSSelector *end = $$;
             while( end->tagHistory )
                 end = end->tagHistory;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list