5e929de
diff -ur kdelibs-3.5.10/khtml/css/cssparser.cpp kdelibs-3.5.10-cve-2009-1698/khtml/css/cssparser.cpp
5e929de
--- kdelibs-3.5.10/khtml/css/cssparser.cpp	2007-01-15 12:34:04.000000000 +0100
5e929de
+++ kdelibs-3.5.10-cve-2009-1698/khtml/css/cssparser.cpp	2009-07-26 05:46:39.000000000 +0200
5e929de
@@ -1344,6 +1344,14 @@
e57cb8b
                 if ( args->size() != 1)
e57cb8b
                     return false;
e57cb8b
                 Value *a = args->current();
e57cb8b
+                if (a->unit != CSSPrimitiveValue::CSS_IDENT) {
5e929de
+                    isValid=false;
e57cb8b
+                    break;
e57cb8b
+                }
e57cb8b
+                if (qString(a->string)[0] == '-') {
5e929de
+                    isValid=false;
e57cb8b
+                    break;
e57cb8b
+                }
e57cb8b
                 parsedValue = new CSSPrimitiveValueImpl(domString(a->string), CSSPrimitiveValue::CSS_ATTR);
e57cb8b
             }
e57cb8b
             else
5e929de
@@ -1396,7 +1404,8 @@
e57cb8b
 
e57cb8b
     CounterImpl *counter = new CounterImpl;
e57cb8b
     Value *i = args->current();
e57cb8b
-//    if (i->unit != CSSPrimitiveValue::CSS_IDENT) goto invalid;
e57cb8b
+    if (i->unit != CSSPrimitiveValue::CSS_IDENT) goto invalid;
e57cb8b
+    if (qString(i->string)[0] == '-') goto invalid;
e57cb8b
     counter->m_identifier = domString(i->string);
e57cb8b
     if (counters) {
e57cb8b
         i = args->next();
5e929de
diff -ur kdelibs-3.5.10/khtml/css/css_valueimpl.cpp kdelibs-3.5.10-cve-2009-1698/khtml/css/css_valueimpl.cpp
5e929de
--- kdelibs-3.5.10/khtml/css/css_valueimpl.cpp	2006-07-22 10:16:49.000000000 +0200
5e929de
+++ kdelibs-3.5.10-cve-2009-1698/khtml/css/css_valueimpl.cpp	2009-07-26 05:45:36.000000000 +0200
5e929de
@@ -736,7 +736,9 @@
5e929de
 	    text = getValueName(m_value.ident);
5e929de
 	    break;
5e929de
 	case CSSPrimitiveValue::CSS_ATTR:
5e929de
-	    // ###
5e929de
+            text = "attr(";
5e929de
+            text += DOMString( m_value.string );
5e929de
+            text += ")";
5e929de
 	    break;
5e929de
 	case CSSPrimitiveValue::CSS_COUNTER:
5e929de
             text = "counter(";